gpt4 book ai didi

angular - 使用仅获取一个对象的 AngularFire2 查询查询 Firebase

转载 作者:行者123 更新时间:2023-12-04 16:35:40 25 4
gpt4 key购买 nike

我有一个对象 Observable

private Room = AngularFire.database.object(`/Rooms/`);

这个 observable 内部有很多值,但我有一个名为 Empty 的子项。为空时设置为 true,否则为 false

我只想查询并从 observable 中取回一个房间。我该怎么做呢?这是我第一次尝试使用 forEach 进行查询,我不想使用它。

this.Room.subscribe(list => {
list.forEach(snapshot =>{
if(snapshot.Empty == "true")
console.log(snapshot);
})

最佳答案

在 AngularFire2 中,要使用子值进行查询,您需要使用 list:

AngularFire.database.list(`/Rooms/`, {
query: {
orderByChild: 'Empty',
equalTo: true
}
});

生成的 observable 将在 Rooms 下发出一组条目,这些条目的 Empty 设置为 true

要检索单个 child ,您可以指定 limitToFirst:

AngularFire.database.list(`/Rooms/`, {
query: {
orderByChild: 'Empty',
equalTo: true,
limitToFirst: 1
}
});

生成的 observable 将发出一个包含单个条目的数组(如果没有匹配项,则发出一个空数组)。如果发出的条目发生变化并且 Empty 设置为 false,则 observable 将使用下一个匹配条目(如果有的话)重新发出。如果你只对第一个匹配条目感兴趣,你可以使用 RxJS first运算符(operator):

import 'rxjs/add/operator/first';
...
AngularFire.database.list(`/Rooms/`, {
query: {
orderByChild: 'Empty',
equalTo: true,
limitToFirst: 1
}
})
.first();

关于angular - 使用仅获取一个对象的 AngularFire2 查询查询 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41088059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com