Firebase AngularFire查询非规范化数据
我在使用firebase查询数据时遇到问题 我有下面的结构 用户有一些宠物,我想在“宠物”节点中获取用户所有宠物的列表。 我采取了以下方法:Firebase AngularFire查询非规范化数据,firebase,angularfire,firebase-realtime-database,angularfire2,Firebase,Angularfire,Firebase Realtime Database,Angularfire2,我在使用firebase查询数据时遇到问题 我有下面的结构 用户有一些宠物,我想在“宠物”节点中获取用户所有宠物的列表。 我采取了以下方法: for (let petUID in this.user.pets) { this.af.database.object("/pets/" + petUID ).subscribe(data => { this.ownPets.push(data); }); } 最后,我得到了我的ownPets变量中的所有宠物。 但这种方
for (let petUID in this.user.pets) {
this.af.database.object("/pets/" + petUID ).subscribe(data => {
this.ownPets.push(data);
});
}
最后,我得到了我的ownPets
变量中的所有宠物。
但这种方法对我来说很尴尬
如果从ownPets
数组中的宠物更新了“宠物”节点中的任何数据,则会再次推送此宠物,我会在ownPets
中获取过期的和新的宠物
我尝试了另一种方法:使用query方法并在equalTo
中发送一个对象数组,但我收到一个错误,说我无法发送对象数组
this.af.database.list('/pets', {
query: {
orderByChild: "name",
equalTo: ["pet1", "pet2"]
}
}).subscribe (data => {
console.log(data);
});
谁有更好的方法我可以用?
谢谢我可能误解了什么,但是为什么不创建一个临时数组并将新数据推入其中,然后简单地
this.ownPets=newData
?我可能误解了什么,但是为什么不创建一个临时数组并将新数据推入其中,然后简单地this.ownPets=newData
?