Запрос Firestore по ключу объекта - PullRequest
0 голосов
/ 30 января 2019

У меня есть набор вложенных объектов в коллекции в firestore, у которых есть ключ UID.Я хочу запросить все документы, которые относятся к пользователю, проверяя, является ли их UID ключом объекта (в основном, если он существует).Это модель в firestore: enter image description here

, и вот как я сейчас пытаюсь вернуть документы:

  getAllTenancyOffersByUserId() {
    return this.afs.collection('collection_name', ref =>
      ref.where(`application.members.${this._auth.currentUserId}`, '==', !null),
    );
  }

, но это ничего не возвращает.Я понимаю, что могу просто запросить по этому статусу, однако он постоянно обновляется, поэтому вызовет проблемы

Ответы [ 3 ]

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

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

Вы можете попробовать запросить поле date_modified для чего-то большего, чем 1900.

getAllTenancyOffersByUserId() {
  return this.afs.collection('collection_name', ref =>
    ref.where(`
      application.members.${this._auth.currentUserId}.date_modified`, 
      '>=',
      new Date('1900-01-01')
    ),
  );
}
0 голосов
/ 23 апреля 2019

На самом деле, что вы можете сделать, это отфильтровать по любому строковому полю, которое у вас есть в объекте, например так:

.collection("collectionName")
.where("mapArray.map.stringField", ">", "''")

важной частью здесь является строковое поле;">", "''"

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

Следующие действия должны помочь:

  getAllTenancyOffersByUserId() {
    return this.afs.collection('members', ref =>
      ref.where(firebase.firestore.FieldPath.documentId(), '==', `${this._auth.currentUserId}`)
    );
  }

См. Соответствующий документ: https://firebase.google.com/docs/reference/js/firebase.firestore.FieldPath#.documentId

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