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

时间:2015-01-15 22:20:25

标签: javascript firebase

每当我尝试获取我推送到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不是一个函数。”),我不知道这是怎么回事,我需要使用密钥其他地方的价值(在这种情况下为“-JfjdUW4BT32DMgeuAdt”)。

谁能告诉我哪里出错了?

1 个答案:

答案 0 :(得分:3)

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