我已经学习了如何在Firebase中添加和删除。这很简单。
我的删除代码是在我的适配器类中找到的,它是在单击“删除”按钮时激活的(这是我可以正确注册删除按钮的唯一方法)
public void deleteJournal(int position) {
getSnapshots().getSnapshot(position).getReference().delete();
}
并添加(在另一个类中)
CollectionReference diaryRef = FirebaseFirestore.getInstance()
.collection("Diary");
diaryRef.add(new Diary(growName, description, priority));
但是我什至不知道从哪里开始更新。我将把编辑代码放在适配器类中,这将打开一个对话框窗口来编辑值。
我知道如何创建窗口,编辑值以及为此数据设置新变量。但是,如何确保通过单击相应的编辑按钮将此更新的数据应用于文档?然后正确更新Firebase。
答案 0 :(得分:1)
diaryRef.add(new Diary(growName, description, priority)).addOnSuccessListener(documentReference -> {
String id = documentReference.getId();
db.collection("Diary").document(id).update("entryId", id);
});
现在您将拥有一个唯一的ID,用于删除或更新条目
答案 1 :(得分:1)
但是如何确保将更新后的数据应用于文档
您将以同样的方式删除文档。请参见下面的方法:
public void updateJournal(int position) {
Diary diary = getSnapshots().getSnapshot(position).toObject(Diary.class);
//Make the changes
}
一旦有了Diar
y对象,就可以进行所需的更新,然后将文档写回到数据库中,如问题所示。