java - 当用户单击卡片时,是否可以使用一种方法来修改 Firestore 中的特定文档?
问题描述
大家,早安。我在这里有一个问题,当用户点击 Android 应用程序内的卡片时,有没有一种方法可以用来修改“用户”集合中的一个文档?我尝试使用下面的代码,但似乎没有意义。
我的想法是当用户单击 1 个事件时,它会显示事件的详细信息,并且有 1 个按钮可供单击,以便 eventID 可以存储在当前用户的文档中。这里有人可以回答我的问题吗?谢谢你。
//当特定事件卡被点击时:
joinBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference collRef= rootRef.collection("users");
//the eventDocID is saved in user's "save_event".
collRef.document().update("saved_event", a.eventDocId).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull @NotNull Task<Void> task) {
Log.d(TAG, "onComplete");
}
});
}
});`
解决方案
为了执行更新,您需要指定要更新的文档的 ID。因此,您必须将“pJbM8gfwHiuJUP8R4320”传递给 document() 方法并像这样调用 update():
Map<String, Object> update = new HashMap<>();
update.put("eventDocId", "newID");
DocumentReference docId = collRef.document("pJbM8gfwHiuJUP8R4320");
docId.update("saved_event", update).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull @NotNull Task<Void> task) {
Log.d(TAG, "Update complete.");
}
});