【发布时间】:2020-02-14 11:56:22
【问题描述】:
我在 firebase 中有一个用户集合和一个用户结构。我需要编写一个函数,接收用户的 id 并返回相应的用户对象:
struct AppUser: Codable {
var id: String
var displayName: String
var photoURL: String
var points: Int?
var knownLanguageCodes: Set<String>?
}
这是我目前拥有的功能。
func getUser(id: String) -> AppUser? {
let db = Firestore.firestore()
let userRef = db.collection("users").document(id)
userRef.getDocument { (document, error) in
if let document = document, document.exists {
let userID = document.data()?["id"] as! String
let userDisplayName = document.data()?["displayName"] as! String
let userPhotoURL = document.data()?["photoURL"] as! String
let userPoints = document.data()?["points"] as! Int?
let userKnownLanguageCodes = document.data()?["knownLanguageCode"] as! Set<String>?
let user = AppUser(id: userID,
displayName: userDisplayName,
photoURL: userPhotoURL,
points: userPoints,
knownLanguageCodes: userKnownLanguageCodes)
return user
} else {
print("Error getting user")
return nil
}
}
}
上面的两个return语句都给出了错误:Unexpected non-void return value in void function
我在https://cloud.google.com/firestore/docs/query-data/get-data 的“自定义对象”标题下查看了代码,它似乎对我不起作用。我收到错误:“NSObject”类型的值没有成员“数据”。这是在链接中代码的第 6 行生成的。
【问题讨论】:
标签: ios swift firebase google-cloud-firestore