Firebase - Как проверить, не является ли подколлекция нулевой или пустой в предложении where? - PullRequest
0 голосов
/ 13 марта 2020
this.db
      .collection("titles")
      .orderBy("name")
      .where("usernames", "!=", null);

Я знаю, что Firebase не поддерживает != оператор. Итак, как проверить, является ли usernames (это подколлекция) не нулевым (или пустым)?

1 Ответ

2 голосов
/ 13 марта 2020

Я знаю, что Firebase не поддерживает! = Оператор.

Да, все верно.

Итак, как проверить, если имена пользователей (это подколлекция) не является нулевым (или пустым)?

Вы не можете проверить, является ли usernames подколлекцией, используя функцию where(). Вместо этого вы можете проверить количество документов в вашем usernames подколлекции:

this.db.collection('titles').doc('titleId').get().then(
  doc => {
    if (doc.exists) {
      this.db.collection('titles').doc('titleId').collection('usernames').limit(1).get().
        then(sub => {
          if (sub.docs.length > 0) {
            console.log('usernames subcollection exists!');
          }
        });
      }
  });

Поэтому решение состоит в том, чтобы проверить, если docs.length > 0.

Кроме того, подколлекция не может быть ни null, ни пустым. Если коллекция не содержит никаких документов, она вообще не существует.

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