【Flutter ✕ Firebase】 クエリ一覧

2022年4月11日

where (特定の条件で抽出)

基本構文

final firestore = FirebaseFirestore.instance;
await firestore.collection('users').where('name', isEqualTo: 'Terry').get();
演算子意味使い方
isEqualTo〜と等しいwhere('name', isEqualTo: 'Terry')
isNotEqualTo〜と等しくないwhere('name', isNotEqualTo: 'Terry')
isLessThan〜より小さいwhere('age', isLessThan: 20)
isLessThanOrEqualTo〜以下where('age', isLessThanOrEqualTo: 20)
isGreaterThan〜より大きいwhere('age', isGreaterThan: 20)
isGreaterThanOrEqualTo〜以上where('age', isGreaterThanOrEqualTo: 20)
arrayContains配列内に右辺の要素を含むwhere('hobbies', arrayContains: 'Mac')
arrayContainsAny配列内に右辺の要素のいずれかを含むwhere('hobbies', arrayContainsAny: ['デザイナー', 'マーケター'])
whereIn右辺のいずれかが含まれているwhere('name', whereIn: ['Mike', 'John'])
whereNotIn右辺のいずれも含まれないwhere('name', whereNotIn: ['Mike', 'John'])
isNull右辺がnullである・ない.where('name', isNull: true)

orderBy (特定の条件で並べ替え)

// 昇順
final firestore = FirebaseFirestore.instance;
await firestore.collection('users').orderBy('created_at', descending: false).get();
// 降順
final firestore = FirebaseFirestore.instance;
await firestore.collection('users').orderBy('created_at', descending: true).get();

start, end(取得範囲の指定)

final firestore = FirebaseFirestore.instance;
await firestore.collection('users')
  .orderBy('createdAt', descending: true)
  .startAt([Timestamp.fromDate(dateTime)])
  .get();

endAt(特定条件に合うドキュメントまでを読み込む)

final firestore = FirebaseFirestore.instance;
await firestore.collection('users')
  .orderBy('createdAt', descending: true)
  .endAt([Timestamp.fromDate(dateTime)])
  .get();

limit(取得数の制限)

final firestore = FirebaseFirestore.instance;
await firestore.collection('users').limit(20).get();

参考

https://firebase.google.com/docs/firestore/query-data/queries?hl=ja#dart

未分類

Posted by Next-k