【问题标题】:How do you add a storage Reference in swift for Firestore?如何在 swift 中为 Firestore 添加存储参考?
【发布时间】:2018-01-02 18:41:37
【问题描述】:

如何使用swift创建一个swift字典格式的存储引用类型的字段。我不断收到一条错误消息,说 FIRStorageReference。预先感谢您的帮助。 这是下面的代码,photoRef是一个存储引用:

let newFirePhotoRef = newUserRef.collection("Photos").document()
photoRef = photoRef.child(newFirePhotoRef.documentID)

newFirePhotoRef.setData([
  "Date":Date(),
  "Photo Reference in Storage": photoRef 
])

这是我收到的错误:

由于未捕获的异常“FIRInvalidArgumentException”而终止应用程序,原因:“不支持的类型:FIRStorageReference(在字段 Photo Reference in Storage 中找到)”

我想快速创建这个字段

【问题讨论】:

    标签: swift firebase google-cloud-storage firebase-storage google-cloud-firestore


    【解决方案1】:

    您不能在 Firestore 中存储 FIRStorageReference 类型的对象。相反,将 FIRStorageReference 对象转换为字符串,并存储该字符串。您可以使用bucketfullPath 的某种组合来构建适合您需求的字符串。

    【讨论】:

    • 是否可以使用 swift 字典 firebase.google.com/docs/firestore/manage-data/data-types 添加类型引用的值,我在 Firestore 控制台上看到您可以手动选择类型引用,该引用似乎是包含两个字段数据库和文档的对象路径,数据库部分会自动填充存储桶的 URL。是否可以快速创建此字段。
    • 我不明白你在问什么。如果您有一个与第一个不同的新问题,请花一些时间来格式化一个全新的问题,它可以有自己的答案。
    • 我正在尝试了解如何使用 swift 字典在 Firestore 中创建存储类型引用的值
    • 就像我说的,您不能将存储引用对象放在 Firestore 中。您必须将它们转换为字符串。如果您想知道不同类型的参考,请提出不同的问题来解释您要做什么。
    【解决方案2】:
    let db = Firestore.firestore()
    //this is to store reference 
    let ref =  db.document("listing/v4/content/\(key)")
    
    let dataToWriteInFireStore :[String:Any] = [
       "_ref": ref,
       "id": 4,
       "timestamp": Int(Date().millisecondsSince1970)
    ]
    
    db.collection("user_favs/v4/\(FIRUserID)").document("user_fav").setData(dataToWiteInFireStore) {
        err in
        if let err = err {
           print("Error writing document: \(err)")
        } else {
           print("Document successfully written!")
        }
    
       }
    

    【讨论】:

      猜你喜欢
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 2019-01-04
      • 2010-10-28
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多