Составной запрос базы данных Firebase в реальном времени, объединяющий текст и дату - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь сделать составной запрос (объединение двух детей).То, что я хочу сделать, это выбрать объекты, которые старше 5 минут и также имеют тип.

Итак, я объединил дочерние элементы type и date в новый дочерний элемент с именем type_date иЯ делаю свой запрос следующим образом:

const now = Date.now();
const fiveMinutesMs = 5*60*1000;
const fiveMinutesAgo = now - fiveMinutesMs;

const fiveMinutesAgoQuery = "type_" + fiveMinutesAgo;

ref.orderByChild('type_date').endAt(fiveMinutesAgoQuery).once('value');

Единственное, что он не работает.Это дает мне результаты объектов, которые даже не имеют type_date потомка.

Ответы [ 3 ]

0 голосов
/ 01 марта 2019

РЕДАКТИРОВАТЬ : К сожалению, я был слишком быстр .... это работает, только если я фильтрую только строку даты, но не вместе с предварительно добавленным типом, который я хочу ...

Так что это работает:

const fiveMinutesAgoIso = new Date(fiveMinutesAgo).toISOString();
const fiveMinutesAgoQuery = String(fiveMinutesAgoIso);

Но не:

const fiveMinutesAgoIso = new Date(fiveMinutesAgo).toISOString();
const fiveMinutesAgoQuery = "type_" + fiveMinutesAgoIso;
0 голосов
/ 07 марта 2019

Просто составьте сложный запрос, как говорит доктор:

const fiveMinutesAgoIso = new Date(fiveMinutesAgo).toISOString();

ref.where("type", "==", TYPE_YOU_WANT).orderByChild('type').endAt(fiveMinutesAgoQuery).once('value');
0 голосов
/ 01 марта 2019

Попробуйте startAt вместо endAt.Я надеюсь, что это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...