firebase 按firestore数组的元素计数拉取

wecizke3  于 2023-03-31  发布在  其他
关注(0)|答案(2)|浏览(156)

每个文档中都有一个uid列表。我想从最大到最小的长度获得这些列表。我如何在Firestore中做到这一点?
我试过了,但我找不到一个好方法。

jljoyd4f

jljoyd4f1#

你可以使用QuerySnapshotorderBy方法和descending true。例如,你有一个集合documents,你希望它按uids排序

CollectionReference documentsRef = FirebaseFirestore.instance.collection('documents');

QuerySnapshot snapshot = await documentsRef
    .orderBy('uids', descending: true)
    .get();

List<QueryDocumentSnapshot> documents = snapshot.docs;
htrmnn0y

htrmnn0y2#

使用Cloud firestore的orderBy方法根据数组字段的长度对文档进行排序,如下所示

const db = firebase.firestore();
const collectionRef = db.collection('udid_collection');

// Sort documents in descending order based on the length of the "uids" array field
collectionRef.orderBy('uids', 'desc').get()
  .then(querySnapshot => {
    querySnapshot.forEach(doc => {
      console.log(doc.data().uids);
    });
  })
  .catch(error => {
    console.log(error);
  });

相关问题