我做了一个汽车管理应用。
用户用他的电子邮件地址注册并登录后,他添加了一辆车并在其下输入其他信息。
这些车辆的车牌显示在回收视图中。
点击盘子,你会进入一个屏幕,显示它所填写的信息。
我在这个屏幕上放了一个删除按钮。
但是,正如我在代码中所示,我如何显示打开的页面的自动生成的ID来删除它?
- 版面显示版面页
- 包含被点击的车牌和删除按钮(红框)信息页面的页面
- My Firebase Firestore min display Firebase Firestore
我不知道怎么写代码。
我正在尝试观看视频课程,并按照我想要的方式在我的脑海中应用它们。
这个应用程序是我讲到的最后一点。
就我之前的问题和视频的答案来看,我不会回答这个问题。
我知道这很难,但是你能告诉这个无知的人正确的方法吗?
public void deleteCarsClicked(View view) {
firebaseFirestore.collection("Arabalar").document("How do I show the ID of the opened page here.")
.delete()
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void unused) {
Intent intent = new Intent(RstActivity.this, CarsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(RstActivity.this, e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
}
});
}
正如@FrankvanPuffelen在他的评论中提到的,要能够删除一个特定的文档,您需要知道它的文档ID。例如,如果您有以下模式:
db-root
|
--- licensePlates (collection)
|
--- $licensePlateId (document)
|
--- code: "34FHR147"
|
--- licensePlateId: "FirestoreDocumentId"
要删除此文档,您可以调用delete(),如下所示:
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("licensePlates")
.document("FirestoreDocumentId")
.delete()
.addOnCompleteListener(/*.../*);
如果你不知道firestoredocumententid",那么你必须执行一个查询:
Query queryByLicensePlate = db.collection("licensePlates").whereEqualTo("code", "34FHR147");
queryByLicensePlate.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
document.getReference().delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> deleteTask) {
if (deleteTask.isSuccessful()) {
Log.d(TAG, "Document successfully deleted.");
} else {
Log.d(TAG, "Error deleting document: ", deleteTask.getException());
}
}
});
}
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});