Мой код отправляет сообщение, которое сохраняется в Firebase под Узлом сообщений. Я пытаюсь использовать технику Firebase Fanout для сохранения (fromId) (который также является идентификатором пользователя (uid) человека, отправившего сообщение) в новом пользовательском сообщении Node. Проблема, с которой я сталкиваюсь, заключается в том, что она не генерирует новый узел. Я пытался изменить uRef.updateChildValues ([messageId: 1]). в uRef.setValue, и он успешно генерирует узел, но когда я отправляю другое сообщение, он не добавляет дочерний элемент.
func handlesend(){
let ref =
Database.database().reference().child("messages")
let ChildRef = ref.childByAutoId()
let toId = user!.id!
let fromId = Auth.auth().currentUser!.uid
let timestamp: NSNumber = NSNumber(value:
Int(NSDate().timeIntervalSince1970))
let values = ["message": msgTextField.text!, "toId":
toId, "fromId": fromId, "timestamp": timestamp] as [String : Any]
// ChildRef.updateChildValues(values)
ChildRef.updateChildValues(values) { (error, ref) in
if error != nil{
print(error!)
return
}
print(ChildRef.key!)
let uRef =
Database.database().reference().child("user-Messages").child(fromId)
let messageId = ChildRef.key
uRef.updateChildValues([messageId: 1])
}
}
Узел Firebase
ovaischatapp
messages
-LhA5-OYmcBvViACqmV5
-LhAALBzbWfvtzWtHjix
fromId: "d4kXL87nrMPDpDEtwArUNWHiIaz1"
message:
"hey how are you? ..."
timestamp: 1560334394
toId: "vhgXr9PNvtM17dzc7yVorUuUOau1"
.........
users
-LhAD2fpAQMvLUFerjSG
-LhADAHXM1lF7YZFHfzP
........