如何使用其密钥firebase检索数据

如何使用其密钥firebase检索数据,firebase,firebase-realtime-database,angularfire2,Firebase,Firebase Realtime Database,Angularfire2,假设我们有一个数据库: Recipes recipe_key(some uniq key generated when data pushed) ingredients:pepper 如何使用recipe_键检索胡椒值?我查看了angularfire2的文档,它说使用快照更改,但有了这段代码,我只能得到“配方”。我想我需要再往下一层 构造函数(afDb:AngularFireDatabase){ afDb.object('/recipes/').snapshotCha

假设我们有一个数据库:

Recipes
   recipe_key(some uniq key generated when data pushed)
          ingredients:pepper
如何使用recipe_键检索胡椒值?我查看了angularfire2的文档,它说使用快照更改,但有了这段代码,我只能得到“配方”。我想我需要再往下一层

构造函数(afDb:AngularFireDatabase){
afDb.object('/recipes/').snapshotChanges().map(操作=>{
const$key=action.payload.key;
const data={$key,…action.payload.val()};
返回数据;
}).subscribe(item=>console.log(item.key));
}

文档是正确的,您应该使用快照更改,以便可以从负载对象获取密钥属性

查看您的代码,我相信您忘记将键添加到
AngularFireDatabase的
对象()
方法

const recipeKey = '<your-push-key>';
afDb.object(`/recipes/${recipeKey}`).snapshotChanges().map(action => {
    const $key = action.payload.key;
    const data = { $key, ...action.payload.val() };
    return data;
}).subscribe(item => console.log(item.$key));

文档是正确的,您应该使用快照更改,以便可以从负载对象获取密钥属性

查看您的代码,我相信您忘记将键添加到
AngularFireDatabase的
对象()
方法

const recipeKey = '<your-push-key>';
afDb.object(`/recipes/${recipeKey}`).snapshotChanges().map(action => {
    const $key = action.payload.key;
    const data = { $key, ...action.payload.val() };
    return data;
}).subscribe(item => console.log(item.$key));

什么是“items/1”?哦,抱歉,我直接从文档中获取了代码,它应该是配方什么是“items/1”?哦,抱歉,我直接从文档中获取了代码,它应该是配方如果我不知道收件人,该怎么办?我没有定义。subscribe调用包含该列表中的所有项目。我已再次更新了我的答案,现在应该可以了。如果我不知道收件人我未定义该怎么办。订阅呼叫包含该列表中的所有项目。我再次更新了我的答案,现在应该可以了。