快速从Firebase获取和检索数据

时间:2020-02-05 11:21:17

标签: firebase firebase-realtime-database fetch swift4

我想做的是从firebase提取数据,但是该数据为零,因为用户尚未将其数据发送到firebase,因此当他进入应该显示其数据的视图控制器时,编译器会出错。我该如何解决这个错误?我尝试添加警报,但仍然无法正常工作。

  func getData(){
      ref = Database.database().reference()
      let userID = Auth.auth().currentUser?.uid

          ref.child("users")
               .queryOrdered(byChild: "uid")
               .queryEqual(toValue:userID)
               .observe(.value) { (snapshot, error) in
               if error == nil{// alert} elses{

                   if let data = snapshot.value as? NSDictionary {
                   if snapshot.exists() {

          for a in ((snapshot.value as AnyObject).allKeys)!{
          let users = data.value(forKey:a as! String) as! NSDictionary


            let address = users.value(forKey:"Address") as! NSDictionary
            self.lblAddressNickname.text = address.value(forKey:"addressNickname") as? String
         }

                           }
                       }

                   }
           }
  }

1 个答案:

答案 0 :(得分:0)

因此,到目前为止,我理解了以下问题:当Firebase中没有数据时,您是否有从Firebase中获取数据的问题,然后警报会出现,并将其重定向到新的控制器?

那么根据我的理解,如果我对理解事物有任何疑问,我会给出答案,然后回复我?

首先,您必须检查特定用户在firebase数据库中是否有任何数据,因此如果没有数据,则警报功能将调用

if let data == data
{

fetch_logic is here

}

else
{

let alert = UIAlertController(title:"Add Data",message:"",preferredStyle: .alert)

let action = UIAlertAction(title: "Add Button", style: .default) { (UIAlertAction) in

}
 alert.addAction(action)

 present(alert,animation:true,completion:true)

}