Open3
Firestoreのtimestampでbetween的な処理
- 現在時刻~7日前のいいね数上位300件
let fireStore = admin.firestore()
var endDate = new Date();
var startDate = new Date();
startDate.setDate(startDate.getDate() - 7);
return await fireStore.collectionGroup(getPostPath(env))
.orderBy('createdAt', 'desc')
.startAt(startDate)
.endAt(endDate)
.orderBy('likeCount','desc')
.limit(300)
.get()
これでいいんだろか
getPostPath(env)は取得したいcollectionのパスを返す関数
エラー出てた
Error: Cannot specify an orderBy() constraint after calling startAt(), startAfter(), endBefore() or endAt().
orderBy()はstartAt(),startAfter(),endBefore(),endAt()の後には書けません的な
orderBy() 句の次の制限事項に注意してください。
無効: 範囲フィルタと最初の orderBy を異なるフィールドに使用する
んん、、
自分がやりたいのは
- createdAtが7日前~現在
- その中でlikeCount昇順
- そこから数百件
という処理なので、これはちょっと出来ない...?
おわた