找不到从字符串插值段转换的成员
Posted
技术标签:
【中文标题】找不到从字符串插值段转换的成员【英文标题】: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
也应该是一个字符串。
这是运行时还是编译时?
这是一个编译时错误
【参考方案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以上是关于找不到从字符串插值段转换的成员的主要内容,如果未能解决你的问题,请参考以下文章