【问题标题】:Updating a document in firebase with an auto generated ID使用自动生成的 ID 更新 firebase 中的文档
【发布时间】:2019-12-17 22:45:57
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:
    diaryRef.add(new Diary(growName, description, priority)).addOnSuccessListener(documentReference -> {
                            String id = documentReference.getId();
                            db.collection("Diary").document(id).update("entryId", id);
                        });
    

    现在您将拥有一个唯一的 ID 来删除或更新条目

    【讨论】:

    • 谢谢,正是我要找的东西
    【解决方案2】:

    但是我如何确保我将这些更新的数据应用到文档中

    以同样的方式,您正在删除文档。请看下面的方法:

    public void updateJournal(int position) {
        Diary diary = getSnapshots().getSnapshot(position).toObject(Diary.class);
        //Make the changes
    }
    

    拥有Diary 对象后,您可以进行所需的更新,然后将文档写回数据库,如您的问题所示。

    【讨论】:

    • 正是我要找的东西,谢谢,我希望我能把两者都标记对,因为它们都帮助了我
    猜你喜欢
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    相关资源
    最近更新 更多