获取 Firebase 推送对象的 ID 未定义

Get ID of Firebase Pushed Object Is Undefined

每当我尝试获取推送到我的 Firebase 数据库的项目的 ID 时,都会发生一些非常奇怪的事情...我直接使用了来自 one of their examples:

的代码
var fireBaseRef = new Firebase(FIREBASE_ROOT);
var id = fireBaseRef.child("flintstones").push();
id.set({
    first: 'Fred',
    last: 'Flintstone'
}, function (err) {
    if (!err) {
        //var name = id.key();
        console.log("Set with ID: " + id);
    }
});

当此代码 运行 一切正常时,Forge 门户显示数据已正确写入数据库,我收到相应的 javascript 控制台消息:

"Set with ID: https://myfirebaseurl.com/flintstones/-JfjdUW4BT32DMgeuAdt"

当我取消注释

行时出现问题
var name = id.key();

我一这样做就收到一个 javascript 错误,表明不存在这样的方法 ("Uncaught TypeError: undefined is not a function."),我不知道这是怎么回事,我需要使用密钥其他地方的值(在本例中为“-JfjdUW4BT32DMgeuAdt”)。

谁能告诉我哪里错了?

您看到的行为取决于您使用的客户端库版本。 Firebase Web / Node.js 客户端库 < 2.0.0 使用 FirebaseRef.name(),但该字段已重命名以支持 v2.0.0 及更高版本的 FirebaseRef.key()。有关更多信息,请查看更新日志 here.