如何获取firebase云数据库中的字段值?

Posted

技术标签:

【中文标题】如何获取firebase云数据库中的字段值?【英文标题】:How to get the field values in firebase cloud database? 【发布时间】:2021-03-26 03:44:24 【问题描述】:

let reference = Firestore
            .firestore()
            .collection(FBKeys.CollectionPath.users)
            .document(uid)
        reference.getDocument  (document, error) in
            if let document = document, document.exists 
                let dataDescription = document?.data()
                print("Document data: \(dataDescription)")
             else 
                print("Document does not exist")
            
        

我使用 firebase 创建了一个云数据库。我的收藏名称是“用户”,我有电子邮件、喜爱的艺术、姓名、uid 作为字段。我想要做的是我想添加更多的艺术家到 favoriteArtsts 数组。但是,为此,我必须首先获取对数组的引用。通过按照 firebase 说明,我能够获取 user_id。上面的代码是我尝试过的代码。代码显示所有字段。但是,我不知道如何仅获取 favoriteArtsts 值。有没有办法获取喜爱的Artsts 值?

【问题讨论】:

【参考方案1】:

您可以通过 document.get("favoriteAritsts") 获得单个字段(请注意屏幕截图中 favoriteAritsts 中的拼写错误

你也可以document.data()["favoriteAritsts"]

以上两种方法都会为您提供Any? 的返回类型,因此您需要使用as? [String] 对其中任何一种进行任何可选转换:

let array = document.get("favoriteAritsts") as? [String]

【讨论】:

谢谢!有效!所以,我用 var array = document.get("favoriteAritsts") 作为? [字符串] 数组?。追加(艺术家)。我试图通过追加添加艺术家。当我打印它时它会被添加,但在火力基地中它不会出现。除了追加之外,我还需要做其他事情吗? 太好了——您可以通过单击答案旁边的绿色复选标记来接受答案正确,如果有帮助,您可以单击向上箭头进行投票。是的,你必须做的不仅仅是追加。您可以在 firebase.google.com/docs/firestore/manage-data/add-data 查看 Firebase 文档,了解如何添加数据。您将使用 setDataupdateData 等方法

以上是关于如何获取firebase云数据库中的字段值?的主要内容,如果未能解决你的问题,请参考以下文章

可调用云函数错误:响应缺少数据字段

您如何避免使用 firebase 云功能可能出现的竞争情况?

如何从输入字段将图像上传到 Firebase 云存储?

尝试获取 Firebase 云数据库数据并将其显示在 RecyclerView 中的片段中

如何在 Firebase 云 Firestore 中查询一个字段然后按另一个字段排序?

有没有办法从 Firebase 云函数中的单个函数返回 2 个值并将它们存储在数据库中的不同节点中?