【问题标题】:How to add new item in Firebase如何在 Firebase 中添加新项目
【发布时间】:2017-12-19 18:05:24
【问题描述】:

我想在我的列表中添加一个新项目,我使用没有用户(电子邮件、密码)的 firebase

我想添加这样的新项目:-

开始于:

-vdjs43ndjufd87
     "name" : Jak
     "university" : Harvard

结尾:

-vdjs43ndjufd87
      "name" : Jak
      "university" : Harvard
      "age" : 23

此代码不适用于我:-

let key = ref.child("posts").childByAutoId().key


let post = ["uid": userID,
        "author": username,
        "title": title,
        "body": body]

let childUpdates = ["/posts/\(key)": post,
                "/user-posts/\(userID)/\(key)/": post]

ref.updateChildValues(childUpdates)

【问题讨论】:

  • 您能否澄清“此代码不适用于我”的意思?您是否收到任何错误?另外,您将ref 定义为什么?您确定在您的 ref.updateChildValues(childUpdates) 通话之前定义了 ref 吗?您示例中的变量(nameuniversityage)与您的代码(uidauthortitle、`body)中的变量不匹配。看来您的代码是直接从文档中复制粘贴 (firebase.google.com/docs/database/ios/read-and-write)。请根据您在示例中列出的变量发布您自己的尝试。
  • 我的应用是机场评级,您无需登录即可添加新评级
  • 这是我做不到的

标签: ios swift database firebase firebase-realtime-database


【解决方案1】:

ChildByAutoId() 应该用于为 new 节点创建密钥。您也已经知道要添加数据的节点了。

此外,应该使用更新来更改现有节点的值。您要添加的数据尚不存在。 (更新也可以添加数据,但这是另一个用例)

直接写数据就好了。

let ageRef = ref.child("posts").child("-vdjs43ndjufd87").child("age")
ageRef.setValue(23)

如果要创建新节点,则使用 childByAutoId

let postRef = ref.child("posts").childByAutoId()
postRef.child("name").setValue("some name")
postRef.child("age").setValue(44)

结果

-Yie5jas8dj8asdjs
   name: "some name"
   age: 44

【讨论】:

  • @fewa 我不明白这个评论。我的回答向您展示了如何更新现有节点(您知道密钥),或使用子数据创建新节点。还有别的吗?如果是这样,你能澄清这个问题吗?
  • 我不知道钥匙
  • @fewa 那么如何确定要更新的节点。例如,假设有 10 个帖子...您如何知道要将 age 键:值对老化到哪个帖子?
  • 来自详情页?
  • @fewa 您的问题中没有提到详细信息页面,所以我不知道那是什么。我在问您如何知道要将孩子添加到哪个节点。如果有三个职位; post_0、post_1 和 post_2 并且您想添加一个子值,您想将它添加到哪个帖子?即确定将子节点添加到哪个节点的要求是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
  • 2022-12-01
  • 1970-01-01
  • 2020-07-11
相关资源
最近更新 更多