firebase 只获取密钥然后获取数据
firebase getting only keys then getting data
我的数据结构如下 url
www.example.firebase.com/
{
"companyList" : {
"compkey1" : {
"url1":"somelink1",
"url2":somelink2
},
"compkey2" : {
"url1":"somelink1",
"url2":"somelink2"
}
}
}
我想要实现的是我希望 firebase return 首先是公司列表
compkey1
compkey2
而不是任何子数据
然后,如果用户想要查看特定公司,我希望他们去那家公司 url
像这样
www.example.firebase.com/companyList/compkey2
firebase 的新手所以解释一下。
Firebase JavaScript 客户端总是检索完整的节点。它没有仅检索密钥的选项。
如果您只想检索公司的 keys/names,则必须将它们存储在单独的节点中。
{
"companyList" : {
"compkey1" : {
"url1":"somelink1",
"url2":somelink2
},
"compkey2" : {
"url1":"somelink1",
"url2":"somelink2"
}
},
"companyKeys" : {
"compkey1": true,
"compkey2": true
}
}
Firebase(以及许多其他 NoSQL 数据库)中的一个常见建议是 model your data in a way that your application will need to read it。在上面的示例中,您似乎需要读取公司密钥列表,所以这就是您应该建模的内容。
注意:Firebase REST API 确实有一个 shallow=true
参数,该参数 return 只有键。但我建议改为通过对数据进行不同的建模来解决问题。
Firebase 有一个 shallow
参数,它只能检索键。我验证了它比检索整个节点快得多(快了 100 倍)。
在 Google 应用程序脚本中(抱歉):
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;
}
}
我的数据结构如下 url www.example.firebase.com/
{
"companyList" : {
"compkey1" : {
"url1":"somelink1",
"url2":somelink2
},
"compkey2" : {
"url1":"somelink1",
"url2":"somelink2"
}
}
}
我想要实现的是我希望 firebase return 首先是公司列表
compkey1
compkey2
而不是任何子数据
然后,如果用户想要查看特定公司,我希望他们去那家公司 url 像这样
www.example.firebase.com/companyList/compkey2
firebase 的新手所以解释一下。
Firebase JavaScript 客户端总是检索完整的节点。它没有仅检索密钥的选项。
如果您只想检索公司的 keys/names,则必须将它们存储在单独的节点中。
{
"companyList" : {
"compkey1" : {
"url1":"somelink1",
"url2":somelink2
},
"compkey2" : {
"url1":"somelink1",
"url2":"somelink2"
}
},
"companyKeys" : {
"compkey1": true,
"compkey2": true
}
}
Firebase(以及许多其他 NoSQL 数据库)中的一个常见建议是 model your data in a way that your application will need to read it。在上面的示例中,您似乎需要读取公司密钥列表,所以这就是您应该建模的内容。
注意:Firebase REST API 确实有一个 shallow=true
参数,该参数 return 只有键。但我建议改为通过对数据进行不同的建模来解决问题。
Firebase 有一个 shallow
参数,它只能检索键。我验证了它比检索整个节点快得多(快了 100 倍)。
在 Google 应用程序脚本中(抱歉):
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;
}
}