微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – Firebase Swift – 如何创建子项并将其id添加到另一个ref属性?

here所述,我想将Book对象存储在单独的ref中,并将其id值存储在User的books属性
Users:
user_id:121jhg12h12
  email: "john@doe.com"
  name: "John Doe"
  profile_pic_path: "https://...".
  language: "en"
  exp_points: 1284
  friends: [user_id]
  books: [[book_id,status,current_page,start_date,finish_date]]
  badges: [[badge_id,get_date]]

Books:
book_id: 3213jhg21
  title: "For whom the bell tolls"
  author: "Ernest Hemingway"
  language: "en"
  pages_count: 690
  ISBN: "21hjg1"
  year: 2007

每当我在应用程序中添加一本书时

self.ref!.child("Books").childByAutoId().setValue(["title": arrayOfNames[0] as! Nsstring,"author": arrayOfNames[1] as! Nsstring,"pages_count":arrayOfNames[2] as! Nsstring])

book对象是在Books ref中创建的,但我想立即将其id添加到User的用户书籍数组中.

可以用一些漂亮的方式完成,而不是查询书籍,检索它的ID并将其添加到数组中吗?

如果不是,查询刚刚创建的对象id的正确方法是什么?

也许我不应该使用AutoId模式并在应用程序中为自己创建每个对象的唯一ID?

解决方法

您可以通过以下方式获取childByAutoId创建的密钥:
let newBookRef = self.ref!
                      .child("Books")
                      .childByAutoId()

let newBookId = newBookRef.key
let newBookData = [
  "book_id": newBookId,"title": arrayOfNames[0] as! Nsstring,"pages_count":arrayOfNames[2] as! Nsstring
]

newBookRef.setValue(newBookData)

原文地址:https://www.jb51.cc/iOS/330741.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐