Firebase Firestore Query Between Two Timestamps

后端 未结 3 1131
温柔的废话
温柔的废话 2021-01-16 12:16

I want to find events that are a on now and upcoming (next 30 days) but that are also not in the past.

When i run this as a cloud function, I get \"Cannot have inequ

相关标签:
3条回答
  • 2021-01-16 12:33

    I know this is kind a old thread, but the answer might be good for others.

    What you can do as I at the end ended up doing, is that you have a $start_date and a $target_date.

    You then do like this:

    <?php
    $start = strtotime('2021-11-22');
    $target = strtotime('2022-01-01 0:00:00');
    
    $limit = (($target - $start) / 86400);
    
    $query = $col_data->where('date.day_start', '>=', $start);
    $query = $query->limit($limit);
    
    ?>
    

    Not bad, eh? You welcome!

    0 讨论(0)
  • 2021-01-16 12:36

    Since you have two fields to check with ranges, I'm not sure this is doable with a single query. What you can do instead is perform two queries, merge the results on the client, and perform a final filter to get the exact matches.

    1. Make an assumption about the maximum duration for an event. Call that amount of time "X".
    2. Query for all documents where startDate is greater than now - X, and also less than now + 30 days. Call this result set "A".
    3. Query for all documents where endDate is greater than now, and also less than now + 30 days. Call this result set "B".
    4. On the client, iterate all the results from A and B, checking to see if the start and end dates fit the criteria you want.

    I can't think of a way to structure your data that will do this with a single query.

    0 讨论(0)
  • 2021-01-16 12:40

    From the docs:

    You can only perform range comparisons (<, <=, >, >=) on a single field, and you can include at most one array-contains or array-contains-any clause in a compound query:

    citiesRef.where("state", ">=", "CA").where("state", "<=", "IN");
    citiesRef.where("state", "==", "CA").where("population", ">", 1000000);
    

    https://firebase.google.com/docs/firestore/query-data/queries

    0 讨论(0)
提交回复
热议问题