如何在Cloud Firestore中移动文档?

7 java android firebase google-cloud-firestore

有人可以帮我解决如何在Cloud Firestore中重命名,移动或更新文档或集合名称的问题吗?

无论如何,我还可以访问我的Cloud Firestore来更新终端或任何应用程序中的集合或文档吗?

Ale*_*amo 9

实际上,没有move方法可以让您简单地将文档从一个位置移动到另一个位置.你需要创建一个.为了将文档从一个位置移动到另一个位置,我使用以下方法来吸引您:

public void moveFirestoreDocument(DocumentReference fromPath, final DocumentReference toPath) {
    fromPath.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
        @Override
        public void onComplete(@NonNull Task<DocumentSnapshot> task) {
            if (task.isSuccessful()) {
                DocumentSnapshot document = task.getResult();
                if (document != null) {
                    toPath.set(document.getData())
                        .addOnSuccessListener(new OnSuccessListener<Void>() {
                            @Override
                            public void onSuccess(Void aVoid) {
                                Log.d(TAG, "DocumentSnapshot successfully written!");
                                fromPath.delete()
                                .addOnSuccessListener(new OnSuccessListener<Void>() {
                                        @Override
                                        public void onSuccess(Void aVoid) {
                                            Log.d(TAG, "DocumentSnapshot successfully deleted!");
                                        }
                                })
                                .addOnFailureListener(new OnFailureListener() {
                                        @Override
                                        public void onFailure(@NonNull Exception e) {
                                            Log.w(TAG, "Error deleting document", e);
                                        }
                                });
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.w(TAG, "Error writing document", e);
                            }
                        });
                } else {
                    Log.d(TAG, "No such document");
                }
            } else {
                Log.d(TAG, "get failed with ", task.getException());
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

其中fromPathtoPath您要移动的文档的位置,以及您要移动文档的位置.

流程如下:

  1. Get来自fromPath位置的文件.
  2. Write文档到toPath位置.
  3. Delete来自fromPath位置的文件.

而已!

  • @Snake它只会移动文件.如果文档具有子集,则不会移动子集. (3认同)