获取当前文档的ID Flutter / Firebase

2nbm6dog  于 2022-12-24  发布在  Flutter
关注(0)|答案(2)|浏览(115)

我有一个书单。用户可以创建关于这些书的评论。在某种程度上使评论公开,他们需要由工作人员验证。
以下是在Firestore中创建评论的方式:

Future<void> addChapterReview() {
    return chapter_reviews
        .add({
          'anime_adaptation': animeAdaptation,
          'edited_in_france': editedInFrance,
          'link': chapterLinkController.text,
          'manga': chapterOriginalMangaController.text,
          'note': chapterNoteController.text,
          'number': chapterNumberController.text,
          'opinion': chapterOpinionController.text,
          'pic': chapterPicController.text,
          'title': chapterTitleController.text,
          'edited_in_france': isCheckedEdited,
          'anime_adaptation': isCheckedAnime,
          'isVerified': false,
        })
        .then((value) => print('Review ajoutée avec succès.'))
        .catchError((error) => print('Echec de l\'ajout de la review.'));
  }

之后,管理员可以检查评论,验证,修改或删除它们。
我如何更新评论:

Future<void> sendValidation() async {
    await FirebaseFirestore.instance
        .collection("chapters")
        .doc("currentDocIdIWant")
        .update({'isVerified': 'true'});
  }

这就是我的问题所在。要对评论进行任何操作,我需要获得当前评论的ID。我说“当前”是因为管理员会在每个评论页面上进行审核。
例如:我想主持一个新的张贴审查。我想得到这个id:

我找不到与我的代码匹配的解决方案。
如果需要的话,请不要犹豫问我莫尔细节。

编辑:好吧,使用下面的帮助工具和一些搜索,我无法获得我想要的ID。所以,我在创建评论时将标题放入ID中(没有自动生成的ID)。这样,我就可以获得当前评论的标题,并将其放入我的审核查询中。

一个二个一个一个

jdg4fx2g

jdg4fx2g1#

你只需要这样做:

QuerySnapshot feed =
        await FirebaseFirestore.instance.collection("chapters").get();
    allDates = [];
    for (var element in feed.docs) {
        allDates.add(element.id);
    }

这样你会得到一个列表,其中包含你的chapters集合中的所有文档id。然后你可以随意使用:)
另外,我建议你组织你的文档ID,不要使用自动生成的,因为它们会增加查找和添加或删除其他文档的复杂性。

e5nqia27

e5nqia272#

Future<void> addChapterReview() {
    final documentAdded =
        await chapter_reviews.add({
          'anime_adaptation': animeAdaptation,
          'edited_in_france': editedInFrance,
          'link': chapterLinkController.text,
          'manga': chapterOriginalMangaController.text,
          'note': chapterNoteController.text,
          'number': chapterNumberController.text,
          'opinion': chapterOpinionController.text,
          'pic': chapterPicController.text,
          'title': chapterTitleController.text,
          'edited_in_france': isCheckedEdited,
          'anime_adaptation': isCheckedAnime,
          'isVerified': false,
        });
    final savedDocumentID = documentAdded.id;
}

你可以用那个身份证做任何你想做的事

相关问题