Javascript 按键找不到firebase子级
我无法通过指定指定的子键找到firebase对象,并且只有在指定对象的整个路径时才能找到。为什么会这样 这很有效Javascript 按键找不到firebase子级,javascript,reactjs,firebase,firebase-realtime-database,Javascript,Reactjs,Firebase,Firebase Realtime Database,我无法通过指定指定的子键找到firebase对象,并且只有在指定对象的整个路径时才能找到。为什么会这样 这很有效 ref.child(`users/${user.uid}/watchlist/${key}`) .once('value') .then(function(snapshot) { console.log(snapshot.val()); }); 这不管用 ref.child(key) .once('value') .then(function(snapsho
ref.child(`users/${user.uid}/watchlist/${key}`)
.once('value')
.then(function(snapshot) {
console.log(snapshot.val());
});
这不管用
ref.child(key)
.once('value')
.then(function(snapshot) {
console.log(snapshot.val());
});
我的火基连接
export const ref = firebase.database().ref()
我不知道你还能指望它怎么工作,它只查看引用的直接子级或指定的子路径。它不会在Firebase结构的嵌套路径中查找指定的键。这将是极其低效的。即使它这样做了,如果有多个匹配的键,会发生什么?它会把它们全部退回吗?如果它们在不同的深度呢?等等 Firebase实时数据库基本上是一个类似JSON的大数据树。获取所需数据的唯一方法是了解该数据的整个路径。否则就不会有任何结构 我想如果您愿意,您可以加载整个Firebase数据结构,然后编写自己的函数来查找任意键,无论它们在树中的什么位置。但是,这与Firebase库本身一样存在问题,效率低下——事实并非如此 也许这能更好地说明孩子是如何工作的。这:
ref.child(`users/${user.uid}/watchlist/${key}`);
与此基本相同:
ref.child("users").child(user.uid).child("watchlist").child(key);
虽然我怀疑第二种方法效率较低,但我不确定。回答得很好,杰瑞德。稍微澄清一下:Firebase查询允许您使用单个动态零件搜索路径。也可以在这里看到我的答案:如果UID是唯一的,那么在db中指定特定的子项将起作用,但是我不知道这是否有效,但效率不是我关心的重点。