【问题标题】:A simple where clause in flutter/firebase databaseFlutter/firebase 数据库中的简单 where 子句
【发布时间】:2018-09-21 11:19:20
【问题描述】:

今天我开始尝试使用 Firebase Live 数据库。也许我在sql方面想太多了。但我想做的是从我的数据库中获取一条记录,其中一个值等于一个带有颤动的变量。我的桌子是这样的:

我想要实现的是这样的:

FirebaseDatabase.instance.reference().child('users').where('User_id', 1508)

就像我说的。当谈到实时数据库时,我是一个完整的初学者。 我希望有人可以帮助我解决我遇到的这个问题。

亲切的问候, 纳马尼克斯

【问题讨论】:

  • 有什么问题?这还不清楚
  • 是吗?对不起。我想从 Firebase 数据库中获取具有特定 user_id 的记录,但我不知道如何
  • 通常你会想要将User_id设置为你的对象的键。而不是 GUID。这样您就可以使用.child('users/42') 而不是查询。

标签: firebase firebase-realtime-database flutter


【解决方案1】:

根据firstoredocs

Firestore.instance
  .collection('talks')
  .where("topic", isEqualTo: "flutter")
  .snapshots()
  .listen((data) =>
    data.documents.forEach((doc) => print(doc["title"])));

【讨论】:

  • 这似乎是正确的,但称这些“文档”是非常慷慨的。 Dart/Flutter 的 Firebase 文档非常糟糕,我怀疑他们是否很快会完全放弃支持......我害怕继续这个项目。如果他们对 dart/flutter 支持更加认真,他们不会更加关注他们的文档吗?
  • 您说的是 FirebaseStore,但问题与实时数据库有关。
  • 我们如何在小部件中使用您的代码,例如是否包装在未来的构建器中以及使用什么QuerySsnapshotsDocumentSnapshot
【解决方案2】:

如果您在变量中包含用户 ID,例如:

String uid = currentUser.uid;

那么您可以执行以下操作:

FirebaseDatabase.instance.reference().child('users/$uid')

更新 我想这就是你要问的问题

FirebaseDatabase.instance
                    .reference().child("users")
                    .orderByChild("User_id")
                    .equalTo($this.userId)

【讨论】:

  • 这在我的情况下不起作用。 user_id 在记录中。 users/$uid 中的 id 是由 firebase 生成的,我没有使用。
  • 我很困惑。您的身份验证对象中确实有它
  • 你确实说过这个But what I want to do is get a record from my database where a value equals a variable with flutter
  • 我想用来搜索数据库的 user_id 是 1 更深。用户/-L9ozsSf-rtHDfwgHRrm/$uid.
  • user_id 设置为对象的键而不是guid 会更高效。
猜你喜欢
  • 2020-09-18
  • 2018-11-02
  • 2015-04-19
  • 2020-09-21
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多