我有一个存储员工记录的应用程序,它存储员工ID,但也需要每个员工都有本地ID,我想使用{{1}将数据推送到数据库时使用Firebase生成的ID } function作为每个员工的内部ID。这是变更管理所必需的。
我的代码:
push()
输出上述代码:
function submit()
{
var dsRef=new Firebase("https://dataretrievaltest-28983.firebaseio.com/EmployeeDB/EInfo");
var name=document.getElementById('Name').value;
var eid=document.getElementById('EID').value;
var email=document.getElementById('Email').value;
dsRef
.push(
{
Name:name,
EID: eid,
Email: email,
}
);
var pushid=dsRef.name;
console.log("name:"+pushid);
console.log(name);
console.log(eid);
console.log(email);
}
使用Key代替名称,因为名称已被弃用但未获得密钥,而是返回一个函数。
带密钥的代码代替名称
name:function (){S("Firebase.name() being deprecated. Please use Firebase.key() instead.");D("Firebase.name",0,0,arguments.length);return this.key()}
savekey.html:104 Djoko
savekey.html:105 0143
savekey.html:106 Djoko@dept.com
更改后的输出:
var pushid=dsRef.key;
console.log("name:"+pushid);
我需要Keys viz -Kb5 ......:在Json下面可以看到
name:function (){D("Firebase.key",0,0,arguments.length);return this.path.e()?null:me(this.path)}
savekey.html:104 Caroline
savekey.html:105 0192
savekey.html:106 caroline@dept.com
可用属性(键/名称)不提供所需的输出。请让我知道如何找回钥匙,如果我遗失任何东西。
也试过
"EInfo" : {
"-Kb5UunYfq-8zd_Jc2Nd" : {
"EID" : "0134",
"Email" : "Parker@dept.com",
"Name" : "Parker"
},
"-Kb5V9xHhzVix6BNRM78" : {
"EID" : "1024",
"Email" : "sanchez@dept.com",
"Name" : "sanchez"
}
}
它没有给出预期的结果。
var pushid=dsRef.child("EInfo").push().key;
console.log("name:"+pushid);
答案 0 :(得分:3)
您使用的是Firebase SDK 2.x版,但是混合了3.x版的语法。对于Firebase 2.x,获取密钥的语法是:
var pushid=dsRef.key();
console.log("name:"+pushid);
如果您现在正在创建此应用,那么您应该使用Firebase 3.x SDK,在这种情况下,语法确实是dsRef.key
(没有括号)。
您似乎正在寻找刚刚使用push()
创建的项目的键。您可以通过将push
的结果分配给变量来实现:
var newRef = dsRef.push({
Name:name,
EID: eid,
Email: email,
});
console.log(newRef.key()); // or newRef.key when using SDK version 3.x