首页 > 解决方案 > Firestore 创建集合而不添加任何文档

问题描述

我想创建一个集合而不在其中创建任何文档。但不是先创建文档,然后删除文档。我尝试了一些东西,但是当我删除文档时,我的收藏也被删除了。

Firestore 图片

FirebaseFirestore db = FirebaseFirestore.getInstance();

        DocumentReference roomReference = db.collection("messagingRooms").document();

        List<String> partners = new ArrayList<>();
        partners.add("my_id");
        partners.add("it's id");


        Map<String ,Object> newRoom = new HashMap<>();
        newRoom.put("partners", partners);
        newRoom.put("roomID", roomReference.getId());

        roomReference.set(newRoom)
                .addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {

                        Map<String, Object> newMessage  = new HashMap<>();

                       DocumentReference messageReference =  roomReference.collection("messages").document();

                        messageReference.set(newMessage)
                               .addOnSuccessListener(new OnSuccessListener<Void>() {
                                   @Override
                                   public void onSuccess(Void aVoid) {
                                       
                                      db.collection("messagingRooms")
                                              .document(roomReference.getId())
                                              .collection("messages")
                                              .document(messageReference.getId())
                                              .delete()
                                              .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                  @Override
                                                  public void onComplete(@NonNull Task<Void> task) {
                                                      Log.v("Mok", messageReference.getId());
                                                  }
                                              });
                                   }
                               });

                    }
                }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.v("Error_1", e.getMessage());
            }
        });

标签: javagoogle-cloud-firestore

解决方案


在 Firestore 中没有任何文档就无法创建集合。如果你查看官方文档,最后一段说:

您不需要“创建”或“删除”集合。在集合中创建第一个文档后,集合就存在了。如果您删除集合中的所有文档,则它不再存在。

因此,一个集合至少需要一个文档。


推荐阅读