値 (タイムスタンプ) が 2 時間を経過したドキュメントを削除しようとしています。 onSnapshot() を呼び出す必要がありますが、 snapshot.foreach() を呼び出す必要はありません。 console.log で確認すると、Called1 はコンソールに表示されますが、Called2 は表示されません。なぜドキュメントを削除するために呼び出されないのか不思議です。
Cloud Firestore では、各フィールド値 は、その値に基づいてインデックス内で に並べ替えられます。特に、数値は、値インデックス内で Timestamp 値よりも前に並べ替えられます。 where("Date", "<",cutoffTimestamp) のクエリは、指定された数値より小さい Timestamp 値を検索しようとしているため、常に 0 の結果を返します。 。
Timestamp
where("Date", "<",cutoffTimestamp)
この問題を解決するには、Timestamp または Date 値を where() フィルターに渡す必要があります。 Date オブジェクトの使用を選択した場合、そのオブジェクトは SDK によって Timestamp オブジェクトに自動的にシリアル化されます。これにより、自分が使いやすいものを使用できるようになります。
Date
where()
また、「入札 1」と「入札 2」を記録する代わりに、次のことを試してください:
Cloud Firestore では、各フィールド値 は、その値に基づいてインデックス内で に並べ替えられます。特に、数値は、値インデックス内で
Timestamp
値よりも前に並べ替えられます。where("Date", "<",cutoffTimestamp)
のクエリは、指定された数値より小さいTimestamp
値を検索しようとしているため、常に 0 の結果を返します。 。この問題を解決するには、
リーリーTimestamp
またはDate
値をwhere()
フィルターに渡す必要があります。Date
オブジェクトの使用を選択した場合、そのオブジェクトは SDK によって Timestamp オブジェクトに自動的にシリアル化されます。これにより、自分が使いやすいものを使用できるようになります。また、「入札 1」と「入札 2」を記録する代わりに、次のことを試してください:
リーリー