从Firebase获取变量后如何正确提取变量

时间:2019-07-28 18:35:19

标签: android kotlin google-cloud-firestore

首先,我是一般编程人员,不仅是kotlin / android / firebase。我希望我的问题有意义。

从firebase获取之后,如果userId匹配,我想从一个名为“ trust”的字段中提取数据到一个名为“ trust”的变量。我已经做到了,但是只有当我使用“ If”时才可以。我觉得有更好的方法。

我不想再次获得成功,因为如果我已经有本地可用的数据,我不希望我的应用进行多个数据库事务

db.collection("Users").get().addOnSuccessListener { result ->
                for (document in result) {
                  Log.d("DBTEST2", "${document.id} and ${document.data}")


                if(document.id == userStored) {
                  var trust = document["trust"]
                  Log.d("DBTEST3", "$trust")
      }
    }
        }.addOnFailureListener({ exception -> Log.w("DBTEST", "error", exception) })

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试通过其ID获取单个文档。最简单的方法是:

db.collection("Users").document(userStored).get().addOnSuccessListener { document ->
  if (document != null) {
    Log.d("DBTEST2", "${document.id} and ${document.data}")

    var trust = document["trust"]
    Log.d("DBTEST3", "$trust")
  }
}...

有关更多信息,请参见getting a document上的Firebase文档。