【问题标题】:Unable to set data in firestore subcollections无法在 Firestore 子集合中设置数据
【发布时间】:2019-01-24 15:58:11
【问题描述】:

在云 Firestore 上上传数据时

    lateinit var db: DocumentReference

    db = FirebaseFirestore.getInstance().document("users/${mAuth.uid}")

    val items=HashMap<String,Any>()
    items["w"] = "t"
    db.set(items).addOnSuccessListener {
            Toast.makeText(this,"Data updated successfully", Toast.LENGTH_LONG).show()
        }.addOnFailureListener{
            Toast.makeText(this,"Data upload failed",Toast.LENGTH_LONG).show()
        }

有效,但是

    lateinit var db: DocumentReference

    db = FirebaseFirestore.getInstance().document("users/${mAuth.uid}/othercollection/otherdocument")

    val items=HashMap<String,Any>()
    items["w"] = "t"
    db.set(items).addOnSuccessListener {
            Toast.makeText(this,"Data updated successfully", Toast.LENGTH_LONG).show()
        }.addOnFailureListener{
            Toast.makeText(this,"Data upload failed",Toast.LENGTH_LONG).show()
        }

失败。 IE。它打印“数据上传失败”。

其他声明文档路径的方法也失败了,.collection().document().collection().document()..... 也失败了

【问题讨论】:

  • 尝试记录来自addOnFailureListener的消息,它说了什么?

标签: android firebase kotlin google-cloud-firestore


【解决方案1】:

在这种情况下,您需要做的最常见的操作是记录来自addOnFailureListener 的消息,该消息会告诉您所有情况。很可能是与权限不足有关的问题。要解决此问题,请设置与您正在执行的查询相对应的security rules

【讨论】:

    【解决方案2】:

    错误是权限不足。我使用的是旧项目中未为嵌套文档定义的安全规则。更改后问题解决。

    供其他人参考,在更改您的项目应用程序或添加新应用程序时务必小心,确保检查资源,以便它们适用于与您的项目链接的新应用程序。

    【讨论】:

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