简体   繁体   中英

Flutter and Firebase: Why is data not returned sorted by id?

I am trying to return data from firestore database sorted by id. After updating one entry data is returned with one record out of sort. After updating a second entry to confirm issue data is again returned now with two records out of sort. Id is a number on the db and so should be in numeric order.

Here is the code:

  Future getKegIds() async {
    await FirebaseFirestore.instance.collection("kegs").orderBy("id", descending: false ).get().then(
          (snapshot) => snapshot.docs.forEach(
            (document) {
                  print(document.reference);
                  kegIds.add(document.reference.id);
            },
          ),
    );
  }

and here are the results:

  • flutter: (kegs/keg:1)
  • flutter: (kegs/keg:2)
  • flutter: (kegs/keg:3)
  • flutter: (kegs/keg:4)
  • flutter: (kegs/keg:5)
  • flutter: (kegs/keg:6)
  • flutter: (kegs/keg:7)
  • flutter: (kegs/keg:8)
  • flutter: (kegs/keg:9)
  • flutter: (kegs/keg:10)
  • flutter: (kegs/keg:11)
  • flutter: (kegs/keg:15)
  • flutter: (kegs/keg:16)
  • flutter: (kegs/keg:12)
  • flutter: (kegs/keg:13)

Kegs 15 and 16 are out of order.

I think is something like orderBy(FieldPath.documentId) , orderBy('id') is order by a field in document call id .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM