【问题标题】:Not able to reference Firestore document path无法引用 Firestore 文档路径
【发布时间】:2018-12-05 17:52:37
【问题描述】:

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

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' 供以后查询。有什么想法吗?

【问题讨论】:

  • todays_date的声明是什么?
  • var todays_date : String = ""

标签: swift firebase google-cloud-firestore


【解决方案1】:

这是因为您的 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)

【讨论】:

    猜你喜欢
    • 2019-12-30
    • 1970-01-01
    • 2021-12-05
    • 2021-05-14
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2021-07-01
    相关资源
    最近更新 更多