gpt4 book ai didi

firebase - 如何在 Cloud Firestore 中使用 Stream 回调

转载 作者:IT王子 更新时间:2023-10-29 06:55:58 24 4
gpt4 key购买 nike

我有几个问题(我是 Dart 的新手)w.r.t 我在下面找到的代码。我想要达到的目标:1) 错误多写在括号内一行。但我收到错误提示“set literals were supported up to 2.2 ....”。知道可能的错误列表也很好,这样我就可以相应地提醒用户。

2) 增加一个与文档数量相关的计数器,并将文档 ID 保存在一个变量中,如果找到多个文档,则覆盖最后一个值。我正在尝试检查是否应该只有一个文档,并在计数器变为 2 时采取措施。

void _checkIfAdmin() {
Firestore.instance
.collection('Admin')
.where('Email', isEqualTo: widget._user.email)
.snapshots()
.handleError((error)=>{
//
})
.listen((data) => data.documents.forEach((doc) => gpCounter+=1)); // Store document id?
print('Counter: $gpCounter');

当我知道那里有两个文件时,我得到 gpCounter=0 打印。我尝试在函数中添加 async/await,但似乎 firebase 语句没有返回任何 future ,所以我收到一条警告,只能将 await 用于 future 。

最佳答案

我将尝试解决您问题中我能理解的尽可能多的问题。如果您有任何其他问题,您可能应该提出另一个问题。

  1. 设置文字:匿名函数的语法是 () {} 而不是 () => {}。< br/>() => 是一种返回单个表达式值的简写语法,在您的情况下,您在匿名函数中返回一个 Set 因为 {} 创建 Set(或 Map,如果其中有冒号)。
    解决方案是 (error) { ... }

  2. 您打印您的gpCounter同步,但是,您正在收听Stream .
    因此,您应该将 print 语句移动到您的 listen 函数中:

    .listen(data) {
print('Counter: ${data.documents.length}');
})

关于firebase - 如何在 Cloud Firestore 中使用 Stream 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57346355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com