2017-06-21 32 views
0

我在做的是從iPhone地址簿中導出電話號碼&所有者的姓名。使用Swift自動更新值的Firebase

下面是代碼:

dbRef = Database.database().reference() 


let nameData = ["contactName": contact.name ] 
let phoneData = ["contactPhone": contact.phone] 


self.dbRef.child("user/contacts").childByAutoId().setValue(nameData) 

self.dbRef.child("user/contacts").observe(.value, with: { (snapshot) in 

    if let result = snapshot.children.allObjects as? [DataSnapshot] { 

      for child in result { 

       let orderID = child.key 
       self.dbRef.child("user/contacts").child(orderID).updateChildValues(phoneData) 
      } 
     } 
    }) 

但結果卻是在尋找這樣的:直到我停止Xcode的模擬器ContactPhone的值會自動改變,馬不停蹄。

enter image description here

有人能幫助我,請..謝謝

回答

1

你需要做的是在單個詞典結合nameDataphoneData並將此接觸。

dbRef = Database.database().reference() 
let data = ["contactName": contact.name, "contactPhone": contact.phone ] 
self.dbRef.child("user/contacts").childByAutoId().setValue(data) 

邊注:刪除此觀察代碼和viewDidLoad把在其他地方一樣。

編輯:如果你想分開設置,那麼你需要獲得該參考childByAutoId

dbRef = Database.database().reference().child("user/contacts").childByAutoId() 
let nameData = ["contactName": contact.name ] 
let phoneData = ["contactPhone": contact.phone] 
self.dbRef.setValue(nameData) 
self.dbRef.updateChildValues(phoneData) 
+0

謝謝!但是,如果我分開使用nameData和phoneData,而不是在單個字典中,這是不可能的? –

+0

@KUNWOOMYUNG然後你需要參考'childByAutoId' –

+0

很酷,再次感謝! –