Firestore のクエリで「存在しないこと」をチェックしたい場合、事前に null を入れておく

Firestore でこんなモデルを作ったとする。

admin.firestore().collection('user').add({
  startDate: new Date(),
  name: 'hoge'
})

このモデルに対し、「 endDate に値が入っていないもの」をクエリで取得したいとする。
パッと思いつくクエリはこう。

admin.firestore().collection('user')
  .where('endDate', '==', undefined)
  .get()

しかし、 undefined はクエリとして指定することができない。困った。

事前に null を入れておく

admin.firestore().collection('user').add({
  startDate: new Date(),
  name: 'hoge',
  endDate: null
})
admin.firestore().collection('user')
  .where('endDate', '==', null)
  .get()

is null を確認したい場合は、事前に null を入れてデータを作っておく。
後になって is null でクエリを書こうとしてもダメなので、事前に null を入れましょう。

false ならいけそうな気がしたがダメだった

データがあれば true, なければ false というような、js のようにふわっとかけないかなと思ったけどダメだった。
true / false はちゃんと真偽値しか検索に引っかからないようだ。