【问题标题】:updateData function in Firebase is unable to recognise document fieldFirebase 中的 updateData 函数无法识别文档字段
【发布时间】:2020-11-15 16:32:35
【问题描述】:

不确定我是否清楚地提出了我的问题,但是当我想在其中一个文档下的数组中插入一个新元素时,我遇到了与 Error when using updateData function in Firebase on SwiftUI 类似的问题。

我意识到使用 updateData 函数无论如何都会导致崩溃。

这是我的代码的一部分:

let temp = db.collection("users").document("IV9vtchAAcKy")
        temp.updateData([
            "friends": FieldValue.arrayUnion("Simon")
        ])

我已尝试按照给出的答案进行操作,但它们似乎对我不起作用。似乎无法将“朋友”识别为文档下的字段,因为给我的错误是:

global function '__designTimeString(_:fallback:)' requires that 'AnyHashable' conform to 'ExpressibleByStringLiteral'

AuthenticationState.swift:148:13: error: global function '__designTimeString(_:fallback:)' requires that 'AnyHashable' conform to 'ExpressibleByStringLiteral'

我认为“朋友”不符合“AnyHashable”,因此出现错误。

我对 Firebase 和 Swift 还是很陌生,如果提供任何建议,我将不胜感激,在此先感谢您!

【问题讨论】:

    标签: swift firebase google-cloud-firestore


    【解决方案1】:

    .arrayUnion 以数组格式添加元素。您只是缺少括号。

    替换:

    FieldValue.arrayUnion("Simon")
    

    与:

    FieldValue.arrayUnion(["Simon"])
    

    Firebase Firestore: Append/Remove items from document array

    【讨论】:

    • 感谢您的回答,我想我在粘贴时错过了方括号,因为我试图隐藏真实姓名。我还发现我只需要在 AnyHashable 中包装“朋友”,因此 AnyHashable("friends") 将适用于我的代码
    猜你喜欢
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多