2017-09-16 98 views
1

我试图创建if语句来检查Firebase中的数据库是否为空或者尚未创建它。任何想法如何检查?当我按下一个按钮时,该应用程序可以工作,我保存的所有数据都会上传到数据库,然后按下数据库为空的按钮。如何检查数据库是否为空swift 3 - Firebase

谢谢

回答

10

对于您需要检查快照孩子算第一,无论是空。

对于 -

var ref = Firebase(url: FIREBASE_URL) 
ref.observeEventType(.Value, withBlock: { (snapshot: FDataSnapshot!) in 
    if(snapshot.childrenCount > 0){ // It has value already 

    } 
    else{ // Still Empty 

    // Upload values to firebase 

    } 
}) 

希望这将帮助你实现你想要的。 :)

+0

我觉得'如果snapshot.exists()'会完成相同的操作,并且我发现它对它的目标稍微更加明确。请注意,此代码将从数据库中下载所有数据以检查它是否为空。没有办法做到这一点通用的检查,但重要的是要意识到这一点。 –

+0

@FrankvanPuffelen当您在firebase中添加值类型侦听器(如'observeEventType')时,快照将返回您所有的子项以及您也可以只检查快照是否存在。感谢您更新我。我会深入挖掘它。 :) 顺便说一句,我喜欢firebase的方式,它为开发者提供了像魅力一样的灵活性。 –

1

谢谢阿米尔和弗兰克,我知道了。我必须稍微更新一下Amir代码,但是我得到了它的工作。这里是细节

let ref = Database.database().reference(fromURL: "DATABASE_PATH") 
          ref.observe(.value, with: { (snapshot: DataSnapshot!) in 
           if(snapshot.childrenCount > 0){ // It has value already 

            print(" value") 

           } 
           else{ // Still Empty 


             print("No value") 
           } 
          })