使用自动生成的ID更新Firebase中的文档

时间:2019-12-17 22:45:57

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

我已经学习了如何在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。

2 个答案:

答案 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对象,就可以进行所需的更新,然后将文档写回到数据库中,如问题所示。