检查是否存在未使用AngularFire2的子对象

检查是否存在未使用AngularFire2的子对象,angular,typescript,firebase,firebase-realtime-database,angularfire2,Angular,Typescript,Firebase,Firebase Realtime Database,Angularfire2,我想看看有没有孩子。因此,我正在创建一个新的Firebase可观察列表。我还尝试了观察对象。创建可观察对象后,我检查它是否存在。但结果总是错误的 数据库结构: {Rooms:[ {0: {name:ok} }, {1: {name:second} } ]} Angular2代码: isRoom(num){ let isRoom: boolean; var Exists:FirebaseListObservable<

我想看看有没有孩子。因此,我正在创建一个新的Firebase可观察列表。我还尝试了观察对象。创建可观察对象后,我检查它是否存在。但结果总是错误的

数据库结构:

 {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;
});
isRoom(num){
设isRoom:boolean;
var存在:FirebaseListObservable;
Exists=AngularFire.database.list('/Rooms/'+num);
存在。订阅(快照=>{
if(snapshot.exists()){
console.log(“存在”);
isRoom=真;
}否则{
console.log(“不存在”);
isRoom=false;
}
返回空间;
});

对firebase的订阅是异步的,因此当函数退出时它仍在处理中。简单地说,您不能这样做。您需要传入回调函数并等待返回来执行类似操作。

请添加您的firebase数据库结构作为示例。好的,我刚刚添加了结构eSorry我觉得它不是一个有效的结构。你能重写你的数据库结构吗?firebase就是这样组织数据的。我在开始时没有提供密钥,所以它从0开始。你能告诉我你将使用什么方法来检查吗?