firebase_database - flutter 迁移后出错 - DataSnapshot 语法

firebase_database - error after flutter migration - DataSnapshot syntax

我在迁移之前使用了这段代码

  void initState() {
    DatabaseReference db;
    db = FirebaseDatabase.instance.ref().child("likes");
    db.once().then((DataSnapshot snapshot) {
      Map<dynamic, dynamic> values = snapshot.value;
      values.forEach((key, values) {
        likeList.add(values["check"]);
        print(likeList);
      });
    });
  }

在“dart pub upgrade --null-safety”之后我收到错误:

The argument type 'Null Function(DataSnapshot)' can't be assigned to the parameter type 'FutureOr<dynamic> Function(DatabaseEvent)

我无法在 pub.dev 在这种情况下如何使用 DataSnapshot 的 changelos 中找到任何内容。

而不是 DataSnapshot,您应该将 DatabaseEvent 放在 then

  void initState() {
    DatabaseReference db;
    db = FirebaseDatabase.instance.ref().child("likes");
    db.once().then((DatabaseEvent databaseEvent) {
      Map<dynamic, dynamic> values = databaseEvent.snapshot.value;
      values.forEach((key, values) {
        likeList.add(values["check"]);
        print(likeList);
      });
    });
  }