我想从实时数据库中删除通过查询查找的条目,但我得到了 ref 和 key 属性的意外结果。
ref('photos/users/USERID')
.orderByChild('photoname')
.equalTo('photoname i want to look up')
.limitToFirst(1)
.query('once')
.then(snapshot => {
// correct data at 'photos/users/USERID/PHOTOID'
const entry = snapshot.val();
// seems to be the ref to photos/users/USERID'
const ref = snapshot.ref;
// seems to be USERID
const key = snapshot.key
})
为什么这些不是我刚刚找到的条目的引用/ key ?删除此条目的最佳方法是什么?
最佳答案
当您对 Firebase 数据库执行查询时,可能会出现多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
您的代码需要考虑此列表,并迭代 snapshot.forEach()
以获取实际的匹配项:
ref('photos/users/USERID')
.orderByChild('photoname')
.equalTo('photoname i want to look up')
.limitToFirst(1)
.query('once')
.then(snapshot => {
snapshot.forEach(child => {
const entry = child.val();
const ref = child.ref;
const key = child.key
});
})
关于javascript - Firebase 数据库 : why do the key/ref in my queried datasnapshot refer to its parent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47273421/