Flutter:每次应用程序加载时,我想从firebase实时数据库获取数据



我设法从firebase实时数据库中获取数据,但我不能在应用程序中使用它。根据数据,我想显示不同的屏幕(活动)。例如:如果用户已付费,则显示"已付费";屏幕,否则显示"立即付款";屏幕上。我不能使用内部使用的变量,例如:paid_status,从下面的范围之外。因此,我在另一个文件中将它声明为全局变量。

package_stream.listen((DatabaseEvent event) {
globals.paid_status = event.snapshot.value;
});

上面的代码,它工作,但每次,用户关闭应用程序并再次登录,变量值被改变或保持旧(在数据库更新后)。我想从数据库中获取值,每次用户打开应用程序或注销并再次登录。

我使用下面的代码来获取数据:

setState(() {

DatabaseReference paid_stat = db_reference.child('Records/${uid}/Paid');
// Get the Stream
Stream<DatabaseEvent> package_stream = paid_stat.onValue;
// Subscribe to the stream!
package_stream.listen((DatabaseEvent event) {
globals.paid_status = event.snapshot.value;
});
});

我自己解决了:

  1. 我创建了一个asyncFuture函数,使用get()返回snapshot
  2. 使用snapshot.value,我展示了不同的屏幕/活动。

相关内容

  • 没有找到相关文章