firebase 始终更新微件抖动

ql3eal8s  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(126)

我想要一个窗口小部件或东西,我的int自动更新我的实时数据库。有人知道我怎么能做到这一点。我想更新整个时间的代码是:

userid = _userId.replaceAll('#', "").replaceAll("[", "").replaceAll("]", "");
      DatabaseReference ref = FirebaseDatabase.instance.ref("credits");
      final snapshot = await ref.child('$userid').get();
      if (snapshot.exists) {
        moneyd = snapshot.value.toString();
        print(snapshot.value);
      } else {
        print('No data available.');
      }
      print('hello $moneyd');
      if (int.tryParse(moneyd) != null) {
        money = int.tryParse(moneyd) ?? 0;
      } else {
        print('Invalid value for moneyd: $moneyd');
      }

货币值现在是硬编码的:货币= 10;但是我希望它是int money = int.parse(monyd)。我想要这个是因为,字符串是10,每次我重新启动应用程序,但我希望它是最后保存的字符串在firebase.
字符串moneyd =“”;

bf1o4zei

bf1o4zei1#

在这种情况下,他需要使用StreamBuilder.FirebaseDatabase来监听事件:

StreamBuilder<Event>(
          stream: ref.child('credits')child('$userid').onValue,
          builder: (context, snapshot) {
            if (snapshot.hasData) {
              // Get a list of messages from snapshot data
              List<dynamic> data = snapshot.data.snapshot.value;

              moneyd = snapshot.value.toString();
              print(snapshot.value);
              // Return a ListView widget to display messages
              return Text(moneyd);
            } else if (snapshot.hasError) {
              return Text('Something went wrong');
            } else {
              return Text('Loading...');
            }
          },
        ),

相关问题