Фильтр Firebase по дате - PullRequest
0 голосов
/ 13 января 2019

Мои данные:

data

Я ищу способ фильтрации дат с использованием настраиваемого диапазона дат. Я видел несколько примеров в Интернете, где они запрашивали дату, но метка времени всегда была ключом, что невозможно в моем случае. Я пробовал приведенный ниже код, и он не работал.

  var rootRef1 = firebase.database().ref().child("Users").orderByChild('type')
  .startAt("2019-01-05").endat("2019-01-10");


    rootRef1.on("child_added",snap => {
     var name=snap.child("fullname").val();
    var email= snap.child("email").val();
     var address= snap.child("address").val();
     var contact= snap.child("contact").val();
     var status=snap.child("status").val();
     var type=snap.child("type").val();
     var date=snap.child("regdate").val();
     console.log(name);   
   }); 

Это не похоже на работу. Есть идеи?

1 Ответ

0 голосов
/ 13 января 2019

Вы пытаетесь отфильтровать значения дат, но упорядочиваете по type Это не так, как работают запросы к базе данных Firebase: вы всегда сначала заказываете свойство / значение, а затем фильтруете это же свойство / значение.

Таким образом, чтобы заказать / фильтр на regdate:

firebase.database().ref().child("Users").orderByChild('regdate')
  .startAt("2019-01-05").endAt("2019-01-10");

Обратите внимание, что я также изменил endat на endAt (с заглавной буквы A). endat, который вы имели, выдаст синтаксическую ошибку.


Теперь вы заканчиваете на 2019-01-10. Поскольку ваши фактические значения включают время, все они упадут сразу после этого значения. Если вы также хотите включить пользователей, которые зарегистрировались на 2019-01-10, используйте:

firebase.database().ref().child("Users").orderByChild('regdate')
  .startAt("2019-01-05").endAt("2019-01-10 23:59:59");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...