检查孩子是不是存在不适用于AngularFire2
Posted
技术标签:
【中文标题】检查孩子是不是存在不适用于AngularFire2【英文标题】:Checking if child exist not working with AngularFire2检查孩子是否存在不适用于AngularFire2 【发布时间】:2017-04-27 15:34:22 【问题描述】:我想看看是否有孩子存在。所以我正在创建一个新的可观察的 Firebase 列表。我也尝试过使用可观察的对象。创建 observable 后,我检查它是否存在。但它最终总是错误的。
数据库结构:
Rooms:[
0:
name:ok
,
1:
name:second
]
Angular2 代码:
isRoom(num)
let isRoom: boolean;
var Exists:FirebaseListObservable<any[]>;
Exists=AngularFire.database.list('/Rooms/'+num);
Exists.subscribe(snapshot =>
if(snapshot.exists())
console.log("Exists");
isRoom=true;
else
console.log("Doesn't exists");
isRoom=false;
return isRoom;
);
【问题讨论】:
请添加您的 Firebase 数据库结构作为示例。 好的,我刚刚添加了结构 抱歉,它对我来说不是一个有效的结构。你能重写你的数据库结构吗? 这就是 firebase 组织数据的方式。我一开始没有提供密钥,所以它从 0 开始。 你能告诉我你会用什么方法检查吗? 【参考方案1】:对 firebase 的订阅是异步的,因此在函数退出时它仍在处理中。简单地说,你不能这样做。您将需要传入一个回调函数并等待返回来执行类似的操作。
【讨论】:
以上是关于检查孩子是不是存在不适用于AngularFire2的主要内容,如果未能解决你的问题,请参考以下文章
forkJoin 不适用于 AngularFire2 valueChanges