我需要使用集合路径添加用户记录。我正在使用以下代码:
var todays_date : String = ""
let dateFormatter : DateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMddyyyy"
let date = Date()
todays_date = dateFormatter.string(from: date)
docRef = Firestore.firestore().document("userData/scriptureTracking/users/" + user_id.replacingOccurrences(of: " ", with: "_") + "/" + todays_date)
docRef.setData(dataToSave) { (error) in
if let error = error {
print("CloudFirestore Got error: \(error.localizedDescription)")
} else {
print("CloudFirestore: Data has been saved!")
}
}
不知何故无法正确引用它。它在这条线上崩溃了。如果我删除最后一个反斜杠和“todays_date”,那么它工作正常(使用 docRef 保存数据)。但是我需要 'user_id' 和 'todays_date' 以便稍后查询。有什么想法吗?
最佳答案
这是因为您的 docRef 没有指向文档。
请记住,Cloud Firestore 中的所有路径都遵循集合/文档/集合/文档/等的模式。
因此,如果您删除函数的最后一部分并且只拥有:
docRef = Firestore.firestore().document("userData/scriptureTracking/users/"+ user_id.replacingOccurrences(of: "", with: "_"))
你最终得到的是一个名为 userData
的集合,其中有一个名为 scriptureTracking
的文档,其中有一个名为 users
的集合,其中有等于用户 ID 的文档。
如果您在日期末尾添加日期,那么您的集合 等于 06292018(或其他)。最有可能的是,您也希望将其作为子集合中的文档。所以你可能想要类似...
docRef = Firestore.firestore().document("userData/scriptureTracking/users/"+ user_id.replacingOccurrences(of: "", with: "_") + "/dailyEntries/"+ todays_date)
关于swift - 无法引用 Firestore 文档路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51052539/