swift - 无法引用 Firestore 文档路径

标签 swift firebase google-cloud-firestore

我需要使用集合路径添加用户记录。我正在使用以下代码:

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/

相关文章:

javascript - firebase 按生日月份获取 child

java - 获取集合中的所有文档后无法将字段添加到 ArrayList、Android Studio、Java、Firebase Firestore

java - 如何从 Firestore 中删除集合或子集合?

swift - 如何使用 Cocoa 在 Swift 中打开 macOS 中的另一个窗口

swift - Xcode 6 中圆角矩形的问题

swift - 未分配正在释放的指针 [Swift]

android - 当onTap时,所有图标都会更改颜色,如何在单击时仅更改一个?

Firebase + flutter : get platform user used to sign in

ios - Firestore 离线未更新

ios - 设置标签集合的字体