如何从 Flutter Firebase 实时数据库读取数据?

Cey*_* Er 5 dart flutter

我已使用实时数据库进行此设置:

\n\n
->users\n->uid\n    ->name\n    ->email\n    ->other info\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我想保存用户数据,我将使用我的 User 类,然后在数据库中设置对象,如下所示:

\n\n

final FirebaseUser user = await FirebaseAuth.instance.currentUser();\nFirebaseDatabase.instance.reference().child("kullan\xc4\xb1c\xc4\xb1lar").child(user.uid).child("takip").set({"uid":"uid"});

\n\n

我尝试了一下,效果很好。

\n\n

但是我如何从数据库中检索这些值呢?例如,一旦我设置了如上所示的用户对象,我可能想要检索用户的电子邮件。我的意思不是通过登录提供商获取电子邮件。我想要通过实时数据库发送电子邮件。我已经尝试解决这个问题有一段时间了,但文档并没有多大帮助。它显示的只是设置侦听器以等待数据更改。但我不是在等待改变,我不需要倾听者。我想通过使用 JSON 树中的键直接获取数据库中的值。这可以通过实时数据库实现吗?如果是这样,怎么办,因为文档没有解释它或者我只是不理解它。谢谢。

\n

Gaz*_*kus 8

您可以使用一次检索该值.once()。这是一个示例: https: //github.com/flutter/plugins/blob/master/packages/firebase_database/example/lib/main.dart#L62

或者更好,使用 async/await:

Future<String> getEmail() async {
  String result = (await FirebaseDatabase.instance.reference().child("path/to/user/record/email").once()).value;
  print(result);
  return result;
}
Run Code Online (Sandbox Code Playgroud)