2017-08-30 35 views
0

我用下面的火力地堡數據庫工作:添加一個孩子一個孩子在火力地堡數據庫與斯威夫特

enter image description here

我添加新chatIDs用下面的代碼:

DatabaseReference.users(uid: self.uid).reference().child("chatIds/\(chat.uid)").setValue(chat.uid) 

我需要將單個孩子添加到個人"chatIDs"這是一個隨機字符串,我將生成一個隨機字符串,但我沒有與Firebase一起工作了很長時間,所以我不知道如何添加孩子到目前爲止。我該如何編寫代碼做這個?

+1

請告訴我接下來的問題?你已經回答了它 – Siyavash

+0

你想添加孩子而沒有設置值?或者你的問題是什麼? –

回答

0

我認爲你正在尋找這是什麼

let key = firebaseRef.child("users").child("\(String(describing: uid))").child("chatIds").childByAutoId().key 

    let timestamp = Int(Date().timeIntervalSince1970) 

    let child = ["key":key, 
       "name": name as String, 
       "date": birth as String, 
       "created": "\(timestamp)"] 

    firebaseRef.child("users").child("\(String(describing: uid!))").child("chatIds").child(key).setValue(child) 

爲例,我已把鑰匙,名稱,日期和創建,如chatIds的童車,與childByAutoId,產生一個你隨機鍵,因此您可以在搜索對象時找到它。

1

基於數據庫結構,可能實現你想要的是:

let ref = Database.database().reference() 

// Generating the chat id 
let refChats = ref.child("chats") 
let refChat = refChats.childByAutoId() 

// Accessing the "chatIds branch" from a user based on 
// his id 
let currentUserId = self.uid 
let refUsers = ref.child("users") 
let refUser = refUsers.child(currentUserId) 
let refUserChatIds = refUser.child("chatIds") 

// Setting the new Chat Id key created before 
// on the "chatIds branch" 
let chatIdKey = refChat.key 
let refUserChatId = refUserChatIds.child(chatIdKey) 
refUserChatIds.setValue(chatIdKey) 
+0

好的。我想我現在看到了。我會盡快嘗試。謝謝 – Sente

0
import UIKit 
    import Firebase 

    class ChatListVC: UIViewController { 
      var ref: FIRDatabaseReference! 
      var messages: [FIRDataSnapshot]! = [] 
      fileprivate var _refHandle: FIRDatabaseHandle? 
override func viewDidLoad() { 
     super.viewDidLoad() 
self.userDetail() 
} 
     func userDetail(){ 
     _refHandle = self.ref.child("users").child("child id").observe(.value, with: { [weak self] (snapshot) -> Void in 
        guard let strongSelf = self else { return } 
        guard let dict = snapshot.value as? [String:Any] else { return } 
     //access data from dict 

     let MyName = dict["MyName"] as? String ?? "" 
     }) 
    } 
相關問題