【问题标题】:Edit Firestore collectionGroup query documents编辑 Firestore 集合组查询文档
【发布时间】:2020-07-16 12:45:20
【问题描述】:

我想知道是否可以从 collectionGroup 查询中更新文档的字段。我已经将我的查询设置如下,我想 .update() 查询返回的文档中的单个字段。

Query query = db.collectionGroup("orders").whereEqualTo("restaurantid",fAuth.getUid()).whereEqualTo(docId,getId());

        query.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
            @Override
            public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                if (!queryDocumentSnapshots.isEmpty()){
                    Order order = queryDocumentSnapshots.getDocuments().get(0).toObject(Order.class);
                    //can i update the document here?


                }else
                {
                        Log.d("STATUS ERROR", "QUERY IS EMPTY");
                }

            }
        });

【问题讨论】:

  • 请分享您的Order 课程。并且可以使用update 方法对文档进行任何更新。

标签: android firebase google-cloud-firestore


【解决方案1】:

要写入 Firestore 中的文档,您需要一个 DocumentReference 给它。你的queryDocumentSnapshots.getDocuments().get(0) 给你一个DocumentSnapshot,它有一个getReference method。所以:

Query query = db.collectionGroup("orders").whereEqualTo("restaurantid",fAuth.getUid()).whereEqualTo(docId,getId());

query.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
    @Override
    public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
        if (!queryDocumentSnapshots.isEmpty()){
            DocumentSnapshot snapshot = queryDocumentSnapshots.getDocuments().get(0);

            // Order order = snapshot.toObject(Order.class);

            DocumentReference ref = snapshot.getReference();

            ref.update("fieldName", "value");

        } else {
            Log.d("STATUS ERROR", "QUERY IS EMPTY");
        }
    }
});

【讨论】:

    【解决方案2】:

    您可以使用其引用和update 方法更新任何文档的值。

    DocumentReference washingtonRef = db.collection("cities").document("DC");
    washingtonRef.update(key, value);
    

    【讨论】:

      猜你喜欢
      • 2020-07-26
      • 2021-09-26
      • 1970-01-01
      • 2021-07-12
      • 2021-04-08
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      相关资源
      最近更新 更多