如何在 Flutter Firebase 中查询 id isEqualTo currentUser uid 的多个文档?- Flutter Firebase

hermie_brown

我有一个视图屏幕,我想在其中显示所有客户。客户以列表视图格式显示。

在我的 CustomerNotifier 类中,我将客户 id 设置为与 currentUser id 相同,因此自动地,它应该只显示由当前登录用户创建的客户。

  getCustomers(CustomerNotifier customerNotifier) async {
    String userId = (await FirebaseAuth.instance.currentUser()).uid;

    print('Current logged in user uid is: $userId');

    QuerySnapshot snapshot = await Firestore.instance
        .collection('customers')
        .where("id", isEqualTo: userId)
        .orderBy('created_at', descending: true)
        .getDocuments();

    List<Customer> _customerList = [];

    snapshot.documents.forEach((document) {
      Customer customer = Customer.fromMap(document.data);
      _customerList.add(customer);
    });

    customerNotifier.customerList = _customerList;
  }    

  Future createOrUpdateCustomer(Customer customer, bool isUpdating) async {
    CollectionReference customerRef =
        await Firestore.instance.collection('customer');
    FirebaseUser user = await FirebaseAuth.instance.currentUser();
    String userId = user.uid;
    print('Current logged in user uid is: $userId');

    if (isUpdating) {
      customer.updatedAt = Timestamp.now();
      await customerRef.document(userId).updateData(customer.toMap());
      print('updated customer with id: ${customer.id}');
    } else {
      customer.createdAt = Timestamp.now();

      DocumentReference documentReference = await customerRef.document(userId);
      // add(customer.toMap());

      customer.id = documentReference.documentID;

      print('created customer successfully with id: ${customer.id}');

      await documentReference.setData(customer.toMap(), merge: true);
      addCustomer(customer);
    }
    notifyListeners();
  }    

我可以成功写入数据库。但是,读取所有客户文档并显示由 currentUser 创建的客户(其中文档 id == currentUser uid)不会显示在我的客户 ListView 中。

我已经在这几天了,似乎无法弄清楚为什么。对于我可能做错/忽略的事情,我会很感激。

谢谢。

请注意我的颤振项目依赖版本如下:

  firebase_core: ^0.4.5
  firebase_auth: ^0.16.1
  cloud_firestore: ^0.13.7
  provider: ^4.3.1
  firebase_storage: ^3.1.0
约瑟夫·乌图鲁

您的收藏是“客户”而不是“客户”将您的查询更改为:

QuerySnapshot snapshot = await Firestore.instance
    .collection('customer')
    .where("id", isEqualTo: userId)
    .orderBy('created_at', descending: true)
    .getDocuments();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Flutter中的Firebase Auth获取用户ID?

Flutter Firebase认证currentUser()返回null

如何在Flutter中从Firebase获取当前用户ID

Flutter:如何使用foreach从Firebase获取数据以从文档中恢复ID

从Firebase Flutter获取文档ID

如何在flutter中更新Firebase中的收集文档?

从flutter / firebase中的多个文档中获取项目的串联列表

如何从Cloud Firestore中获取user.uid等于flutter中的文档ID的数据?

如何使用Flutter在Firestore中的uid文档中创建集合?

Flutter Firebase通过ID数组获取文档

如何在Flutter中管理Firebase身份验证状态?

如何在Flutter中的Firebase查询中传递多个条件

如何在Flutter中启用/禁用Firebase Crashlytics

使用Flutter从Firebase Firestore查询中获取单个文档

Flutter Firebase-如何将用户uid添加到文档

Flutter StreamBuilder用于多个Firebase文档

如何在flutter中添加链接到Firebase的多个视频播放器

如何从Firebase在Flutter中创建下拉菜单以保存文档ID

Flutter Firebase:是否检索文档列表,但仅限于数组中的ID?

Flutter Firebase登录的用户登录后返回NULL currentUser

如何在Firebase中为文档执行自动uid?

Flutter:如何将 firebase uid 设置为用户文档 ID?

Firebase 在 Flutter 函数中获取 uid 的问题

使用 Flutter 和 Firebase 将图库中的图像添加到用户文档 ID

如何使用firebase firestore flutter的自动生成的ID删除集合中的特定文档?

Flutter Firebase - 允许 null `request.auth.uid` 读取集合文档

如何在flutter中自动从firebase SMS读取OTP

如何在一个集合中计数,多个文档在其属性 Flutter/Firebase 中具有相同的值

如何在一个集合中计数,多个文档在其属性 Flutter/Firebase 中具有相同的值