【问题标题】:How to delete a document of Firestore in Android Studio with Java?如何使用 Java 删除 Android Studio 中的 Firestore 文档?
【发布时间】:2021-12-26 07:35:24
【问题描述】:

此应用程序的目的是在输入文档名称(例如 uid)时从 Firestore 中删除整个文档。

下图显示了我用来删除文档的代码。

firestore = FirebaseFirestore.getInstance();
    button_deleteByID.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            userID = editText_userID.getText().toString();
            Log.d("userID", userID);

            //delete document function
            DocumentReference documentReference = firestore.collection("Users").document(userID);
            documentReference.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void unused) {
                    Log.d("delete successfully","delete successfully");
                    Toast.makeText(Delete.this, "delete successfully", Toast.LENGTH_SHORT).show();
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.d("failed", "delete failed");
                }
            });



        }
    });

Firestore 的结构如下图所示:

运行此代码后,Logcat 显示一条消息“删除成功”。但问题是该文档没有在 Firestore 中删除。有什么解决办法吗?谢谢。

【问题讨论】:

  • 编辑问题发送代码我回答你
  • 什么意思?
  • 这里发代码我帮你解决
  • 到目前为止你在代码中尝试过什么?请回复@AlexMamo
  • @AlexMamo 嗨,先生。问题已更新。希望你能看看它。谢谢

标签: java android firebase android-studio google-cloud-firestore


【解决方案1】:

这段代码放在你的适配器上的删除按钮上

userId 表示你的model_list 喜欢

userId = fileModelList.get(position).getUserId()
deleteFileBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
            new AlertDialog.Builder(MainActivity.this, R.style.Theme_AppCompat_Light_Dialog)
                    .setTitle("Delete File")
                    .setMessage("Are you sure, you want to delete this file?")
                    .setPositiveButton("Delete", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                                        FirebaseFirestore.getInstance().collection("Users")
                                                .document(userID).delete().addOnCompleteListener(new OnCompleteListener<Void>() {
                                            @Override
                                            public void onComplete(@NonNull Task<Void> task) {
                                                if (task.isSuccessful()) {
                                                    fileModelList.remove(position);
                                                    fileAdapter.notifyItemRemoved(position);
                                                    Toast.makeText(MainActivity.this, "Deleted Successfully", Toast.LENGTH_SHORT).show();
                                                } else {
                                                    Toast.makeText(MainActivity.this, "Failed to delete", Toast.LENGTH_SHORT).show();
                                                }
                                            }
                                        });
                                    }
                        }
                    })
                    .setNegativeButton("Cancel", null)
                    .setIcon(android.R.drawable.ic_dialog_alert)
                    .show();
    }
});

【讨论】:

    猜你喜欢
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    相关资源
    最近更新 更多