Flutter cloud_firestore getDocuments()返回null

时间:2019-07-12 22:10:14

标签: firebase flutter google-cloud-firestore

我正在尝试获取集合中的所有文档ID。但是它返回null。

我的收藏集如下:

/user_chats/myUid/users/userUid/characters/jbhv

“ userUid”未知的地方。

示例:我想遍历所有“ users” (users / userUid /)并获取其documentKey(userUid),然后删除具有名称为“ jbhv” 。

Firestore.instance
    .collection('user_chats')
    .document(_firebaseUser.uid)
    .collection("users")
    .getDocuments()
    .then((snapshot){
  snapshot.documents.forEach((user) async{
    var userDocKey = user.documentID;
    await Firestore.instance
        .collection("user_chats")
        .document(_firebaseUser.uid)
        .collection("users")
        .document(userDocKey)
        .collection("characters")
        .document(characterModel.name)
        .delete();
  });

为什么我的snapshot.documents = 0?

1 个答案:

答案 0 :(得分:0)

对包含该名称的所有文档运行查询。然后,一旦您拥有所有文档,就可以执行批量删除。

import 'package:cloud_firestore/cloud_firestore.dart';

QuerySnapshot querySnapshot = await Firestore.instance.collection('user_chats/myUid/users/userUid/characters').where('name', isEqualTo: characterModel.name).getDocuments();

var documents = querySnapshot.documents;