Firestore Firebase Android搜索和更新查询

时间:2018-11-19 16:25:35

标签: android firebase google-cloud-firestore

我正在尝试更新 FireBase Firestore 中的集合中现有文档的字段。我想使用其字段之一来搜索该文档。 我的收藏名称是“投诉”, 我的文档结构看起来像-

complainant_Name: "XYZ"
complaint_Details : "some random details"
e_Mail: "xyz@gmail.com"
id: 5
phone_No: "1234567890" 

我要搜索文档,如果文档的“ id”字段为5,我想更新文档,说将“ complainant_Name”字段更改为“ ABC”。如何在Java Android中为此查询编写代码?在 Firebase Firestore 中搜索后,找不到任何可告诉如何更新的代码源。

1 个答案:

答案 0 :(得分:1)

要解决此问题,请使用以下代码行:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference complaintsRef = rootRef.collection("complaints");
complaintsRef.whereEqualTo("id", 5).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                Map<Object, String> map = new HashMap<>();
                map.put("complainant_Name", "ABC");
                complaintsRef.document(document.getId()).set(map, SetOptions.merge());
            }
        }
    }
});

使用此代码后,属性complainant_Name将保存ABC的值。