如何变量值来自 firestore 数据库?

How to variable values comes from firestore database?

我正在使用 firestore 数据库,这是我的变量

  final firebase = FirebaseFirestore.instance;
  int lessonpoint1 = 0;
  int lessonpoint2 = 0;

我创建了一个在启动时创建这些变量的方法

  create() async {
    try {
      await firebase.collection("Accounts").doc(_user.uid).set({
        "Adı Soyadı": _user.displayName,
        "Mail Adresi": _user.email,
        "lessonpoint1": lessonpoint1,
        "lessonpoint2": lessonpoint2,
      });
    } catch (e) {
      print(e);
    }
  }

我创建后,我不希望这里的变量在这里的值为0。我想从 firestore 中提取这些值。我怎样才能做到这一点?我用Update给变量赋值10,但是当我想访问变量的时候,全局级别的值0来了。

谢谢, 祝你有美好的一天。

您可以使用 TransactionFieldValue.increment().

而不是直接从客户端设置值

使用 Transaction,您将确保始终从数据库中获取最新值并更新它。

FieldValue.increment() 非常相似,但语法少得多,您可以只使用简单的增量。

例如,如果您想将每次访问的积分增加 10,您可以这样编写代码:

create() async {
    try {
      await firebase.collection("Accounts").doc(_user.uid).set({
        "Adı Soyadı": _user.displayName,
        "Mail Adresi": _user.email,
        "lessonpoint1": FieldValue.increment(10),
        "lessonpoint2": FieldValue.increment(10),
      });
    } catch (e) {
      print(e);
    }
  }

如果您只对如何从 firestore 获取数据本身感兴趣,我建议您先查看文档 here

您可以详细了解这两种方法 here