【问题标题】:could not find member convert from string interpolation segment找不到从字符串插值段转换的成员
【发布时间】:2015-09-04 16:37:16
【问题描述】:

我的 firebase JSON 文件中有一个 users 类。它有以下子节点:

  • 年龄
  • 位置
  • 关于
  • 图片

我正在尝试从我的应用程序中输入登录用户的年龄并在 JSON 文件中更新它。

我写了代码:

ref.childByAppendingPath("users\(ref.authData.uid)/Age")
   .updateChildValues(AgeTextField.text)

但它给出了错误:

找不到从字符串插值段转换的成员

请帮我写哪一行代码来更新登录用户的年龄和其他信息?

【问题讨论】:

  • 你能显示竞争用户对象的日志吗?
  • @Shoaib,没有用户对象它是字符串的一部分。 ref.authData.uid 也应该是一个字符串。
  • 这是运行时还是编译时?
  • 这是一个编译时错误

标签: ios swift firebase


【解决方案1】:

插值看起来是正确的。但是,您很可能未通过身份验证。 authData 属性仅在用户通过 Firebase 数据库身份验证时存在。

updateChildValues 函数还有另一个问题。

updateChildValues 需要 [String: AnyObject] 的字典。这是非破坏性更新。它只会更新字典中提供的值。

试试这个。

ref.childByAppendingPath("users\(ref.authData.uid)")
  .updateChildValues(["age": AgeTextField.text])

但如果您真的想深入了解Age 节点,您可以使用setValue 进行字符串更新。

ref.childByAppendingPath("users\(ref.authData.uid)/Age")
  .setValue(AgeTextField.text)

setValue 是破坏性更新。这意味着它将替换该节点位置的所有内容。但是,由于您只访问节点的单个属性,因此更新是否具有破坏性并不重要。

【讨论】:

  • David 还有一件事.. 现在我正在尝试在视图控制器的标签中显示此子节点信息。我应该编码什么?如何获取子节点的快照,请帮助我是 swift 和 fire base 的新手
  • 如何在视图控制器的标签中显示子节点中存储的信息?请帮忙
  • 我会在你单独提出的问题中回答这个问题。如果它对你有用,请解决这个问题:)
  • 是的,请回答我这个问题谢谢:) @David East
猜你喜欢
  • 2018-11-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-05
  • 2012-11-05
相关资源
最近更新 更多