我正在尝试获取Firebase数据库在将Item推送到数据库时生成的密钥,但是,返回的密钥具有不同的值。在照片中,您可以看到'key'(-kqI0bxKg ...)的值与推送的对象主键的值不同。为什么返回一个不同的键(-kql0bxKgq ...)?我如何使用angularfire和typescript来解决这个问题?
handler: data => {
this.afAuth.authState.subscribe(auth => {
const currentUser = auth.uid;
var myRef = this.afDatabase.database.ref().push()
var myKey = myRef.key;
console.log(myKey);
var newEntry = {
description: data.description,
number: 0,
createdBy: currentUser,
key: myKey
}
this.afDatabase.list('whatIWant').push(newEntry);
})
}
答案 0 :(得分:1)
每次拨打push()
时,都会生成一个新ID。由于您在代码中的两个位置调用push()
,因此您生成两个单独的ID。要在这两个地方使用相同的ID,请拨打push()
一次并在两个地方使用新的参考:
var myRef = this.afDatabase.database.ref().push()
var myKey = myRef.key;
...
myRef.set(newEntry);