这是处理创建房间并将其添加到列表的代码:
// Create new room@IBAction func createRoom(_ sender: Any) { if let name = newRoomTextFIEld?.text { let newRoomref = roomref.childByautoID() let roomItem = [ "name": name ] newRoomref.setValue(roomItem) // How to add room to user's room? let userRef: FIRDatabaseReference = FIRDatabase.database().reference().child("users") }}private func observeRooms() { // Observe method to Listen for new channels being written to Firebase roomrefHandle = roomref.observe(.childAdded,with: { (snapshot) -> VoID in let roomData = snapshot.value as! Dictionary<String,AnyObject> let ID = snapshot.key if let name = roomData["name"] as! String!,name.characters.count > 0 { self.rooms.append(Room(ID: ID,name: name)) self.tableVIEw.reloadData() } else { print("Error! Could not decode channel data") } })}
创建一个房间时,我想将新创建的房间添加到Firebase中用户的“房间”节点(我将尝试用它来创建用户的参与房间列表),但每个用户都有使用childByautoID创建的唯一ID,因此我不确定如何访问它.这就是我的Firebase数据库结构的样子:
{ "rooms" : { "-KgK418WuJGjYw27Tg1-" : { "messages" : { "-KgK42e1zl3xxUS0E0C0" : { "senderID" : "2q4VCKu1e7hiL84ObdzgQcQ0pH63","sendername" : "Timothy","text" : "Hi" },"-KgK45LTf3R439mOMpvE" : { "senderID" : "2q4VCKu1e7hiL84ObdzgQcQ0pH63","text" : "Testing" } },"name" : "Room One" } },"users" : { "-KgK3zXgap-iRFsbpv8D" : { "gender" : "male","handle" : "TestHandle123","name" : "Timothy","profilePicture" : "https://graph.facebook.com/*removed for privacy*/picture?type=large&return_ssl_resources=1","rooms" : { "roomname" : "" } } }}
如何将房间正确添加到在Firebase中创建房间的用户?
编辑:
试过这个
let userRef: FIRDatabaseReference = FIRDatabase.database().reference().child("users") let key = userRef.key let childUpdates = ["/\(key)/rooms/": roomItem] userRef.updateChildValues(childUpdates)
它最终在“用户”下创建了第二个节点,而不是在该特定用户中.
{ "rooms" : { "-KgKS0VN65GS2r-Cz6K0" : { "name" : "Room Two" } },"users" : { "-KgKS-X63uSOMnpDWtDn" : { "gender" : "male","profilePicture" : "https://graph.facebook.com/*removed for privacy*/picture?type=large&return_ssl_resources=1" },"users" : { "rooms" : { "name" : "Room Two" } } } }解决方法 您应该阅读 the documentation,以下是存储该密钥的方法:
let key = ref.child("posts").childByautoID().key总结
以上是内存溢出为你收集整理的ios – Firebase – 获取对存储在childByAutoID下的值的引用全部内容,希望文章能够帮你解决ios – Firebase – 获取对存储在childByAutoID下的值的引用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)