Noo*_*lio 2 javascript nosql firebase
我有这种形式的节点:
index
$categoryId
$productId
Run Code Online (Sandbox Code Playgroud)
我希望主要检索一个键的列表index,因此一个对象填充了$categoryId索引中的所有可用内容.
有没有办法在Firebase中检索此列表?我假设检索密钥列表比包含所有数据的列表更有效$categoryId.
我知道另一种方法是维护所有类别的索引列表,但这需要更多编码(当编辑和删除类别时).
您可以使用REST API中的浅键选项,但首选索引.
fetch('<my-firebase-app>/category/.json?shallow=true')
.then((response) => {
return response.json()
})
.then((data) => console.log(data)) // prints only keys under category
Run Code Online (Sandbox Code Playgroud)
不幸的是,实时SDK中没有解决方案.但是,我建议您构建数据以避免使用REST API.尝试$categoryId在Firebase数据库中存储索引.我知道这是额外的代码,但它通常是一个单行.
{
"lookupCategory": {
"category_one": true,
"category_two": true,
"category_three": true,
"category_four": true,
"category_five": true
}
}
Run Code Online (Sandbox Code Playgroud)
使用此索引,您可以只进行实时监听,或者.once()首选.
var ref = new Firebase('<my-firebase-app>/lookupCategory');
ref.on('value', (snap) => console.log(data));
Run Code Online (Sandbox Code Playgroud)