无法使用 'String' Swift 错误的索引下标 'String' 类型的值



首先,其他问题与我的不同。从Firebase Firestore检索数据后,我正在尝试从Swift Xcode中的数据中获取单个值。相反,它给出了一个错误:

不能将类型为"字符串"的值下标为"字符串"的索引

ref.getDocument { (document, err) in
            if let document = document, document.exists {
                let dataDescription = document.data().map(String.init(describing: )) ?? "nil"
                print ("Cached document data: (dataDescription)")
                profilename?.text = dataDescription["name"] as! String
            } else {
                print ("Document doesn't exist")
            }
        }

错误发生在

profilename?.text = dataDescription["name"] as! String

线。

数据说明的打印是:

缓存的文档数据:["电子邮件":test2@gmail.com,"名称":Test2,"电话":408-222-2222]

谁能帮我解决这个问题?

让我通过一个例子来解决这个问题。假设您有一个带有用户集合的 FireStore,并且每个文档都有一个用户 uid 的文档 ID,并将其名称存储在字段中。它看起来像这样

users
   uid_1
      name: "Henry"

我们希望访问此用户的"名称"字段。下面是读取该文档、打印 uid 和名称的代码。

func readUsersName() {
    let users = self.db.collection("users")
    let thisUser = users.document("uid_1")
    thisUser.getDocument { documentSnapshot, error in
        if let error = error {
            print(error.localizedDescription)
            return
        }
        let docId = documentSnapshot?.documentID
        let name = documentSnapshot?.get("name") as! String
        print(docId, name)
    }
}

相关内容

最新更新