Firebase UpdateChildValues ​​не устанавливает никаких значений - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть приложение чата, в котором пользователи могут установить 1: 1 или 1: много комнат чатов.Я хочу сохранить все uid для этого chat_room в chat_room_members.Я пытаюсь использовать updateChildValues([user.id: true]), но он ничего не устанавливает.Если вместо этого я использую setValues, он перезаписывает uid и сохраняет только последний, а это не то, что я хочу.Вот что я пытаюсь сделать:

// chat_room_members > chatId > userId : true
for user in recipients {
print("user id to be set in chat_room_members:", user.id) // prints successfully all uids of the users

    Database.database().reference().child("chat_room_members").child(chatId).updateChildValues([user.id : true])
}

PS: recipients - это массив, в котором хранятся все пользователи, с которыми текущий пользователь хочет начать чат.

Я тестирую это, когда chat_room_members еще даже не существует в базе данных.Самый первый chat_room устанавливает этот узел.

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете попробовать

var dic = [String:Bool]()
recipients.forEach { dic.updateValue(true, forKey:$0.id) }
Database.database().reference().child("chat_room_members").child(chatId).setValue(dic)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...