Javascript firebase只获取密钥,然后获取数据
我在url上有如下数据结构 www.example.firebase.com/Javascript firebase只获取密钥,然后获取数据,javascript,firebase,Javascript,Firebase,我在url上有如下数据结构 www.example.firebase.com/ { "companyList" : { "compkey1" : { "url1":"somelink1", "url2":somelink2 }, "compkey2" : { "url1":"somelink1", "url2":"somelink2" } } }
{
"companyList" : {
"compkey1" : {
"url1":"somelink1",
"url2":somelink2
},
"compkey2" : {
"url1":"somelink1",
"url2":"somelink2"
}
}
}
我想实现的是,我希望firebase首先返回
compkey1
compkey2
而不是任何子数据
然后,如果用户想要查看特定的公司,我希望他们转到该url
像这样
firebase新手,请解释。firebase JavaScript客户端始终检索完整的节点。它没有仅检索密钥的选项 如果只想检索公司的密钥/名称,则必须将它们存储在单独的节点中
{
"companyList" : {
"compkey1" : {
"url1":"somelink1",
"url2":somelink2
},
"compkey2" : {
"url1":"somelink1",
"url2":"somelink2"
}
},
"companyKeys" : {
"compkey1": true,
"compkey2": true
}
}
Firebase(和许多其他NoSQL数据库)中的一个常见建议是。在上面的示例中,您似乎需要阅读公司密钥列表,因此这就是您应该建模的内容
注意:确实有一个
shallow=true
参数,该参数将仅返回键。但我建议改为通过对数据进行不同的建模来解决问题。Firebase有一个shall
参数,该参数只能检索密钥。我验证了它比检索整个节点要快得多(快了100倍)
这里是谷歌应用程序脚本(抱歉):
我正在寻找firebase的查询,但无法确定我想要实现什么。我将尝试您的建议。这篇文章很旧,firebase从那时起改进了其查询功能。我建议在尝试大多数其他事情之前,先阅读Firebase网站上的整个指南。@FrankvanPuffelen关于从哪里开始(关于这个主题),你有什么建议吗?因为“整个指南”有点过分:)
{
"companyList" : {
"compkey1" : {
"url1":"somelink1",
"url2":somelink2
},
"compkey2" : {
"url1":"somelink1",
"url2":"somelink2"
}
},
"companyKeys" : {
"compkey1": true,
"compkey2": true
}
}
class FirebaseNamespace {
get database() {
if(!this._database) {
var firebaseUrl = "https://mydatabase.firebaseio.com/";
var secret = "mysecret";
this._database = FirebaseApp.getDatabaseByUrl(firebaseUrl, secret);
}
return this._database;
}
get(path, parameters) {
return this.database.getData(path, parameters);
}
keys(path) {
return Object.keys(this.get(path, {shallow:true}));
}
save(path, value) {
this.database.setData(path, value);
return value;
}
}