每当我尝试获取我推送到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”)。
谁能告诉我哪里出错了?
答案 0 :(得分:3)
您看到的行为取决于您使用的客户端库版本。 Firebase Web / Node.js客户端库< 2.0.0使用FirebaseRef.name()
,但对于v2.0.0及更高版本,该字段已重命名为FirebaseRef.key()
。有关更多信息,请查看更改日志here。