在Flutter中查询多条件Firebase实时数据库

时间:2019-05-12 05:09:20

标签: firebase-realtime-database dart flutter

我正在使用flutter来查询数据库。 我有一个实时数据库,如下所示: enter image description here

我想按条件选择一条记录: email='test@gmail.com'和密码='111111'

我通过以下链接阅读了解决方案 Query based on multiple where clauses in Firebase 但是它与颤动不兼容。我的代码如下:

var snapshot = await _firestore
      .reference()
      .child(USERS_TBL)
      .orderByChild('email')
      .equalTo(email)
      .once()
      .then((DataSnapshot snapshot) {
        print(snapshot.value);
  });

输出:

  

{-LeXpDcLqkwS0c1lgP7O:{user_role:USER,密码:111111,性别:1,   姓氏:abcee,名字:abcd,电子邮件:test@gmail.com}}

当然,我可以解析值以获得密码值,但是我认为还有另一种更好的解决方案。 我该怎么办? 非常感谢!!!

2 个答案:

答案 0 :(得分:0)

正在工作!

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.2
  cloud_firestore: ^0.12.7+1
  firebase_auth: ^0.14.0+1
  firebase_storage: ^3.0.4


Firestore.instance
                  .collection('task')
                  .where('ownerId', isEqualTo: user.userData['id']).where('status', isEqualTo: 'OPEN')
                  .snapshots(),

答案 1 :(得分:0)

如果您正在寻找灵活的查询,我建议使用 Firestore。使用 Firestore,您可以为您的用例运行查询,如下所示:

FirebaseFirestore.instance
    .collection(USERS_TBL)
    .where('email', isEqualTo: email).snapshots()

这将返回具有相同电子邮件的集合中所有文档的查询快照。