Получение вложенной коллекции по указанному значению поля c в Firestore - PullRequest
0 голосов
/ 10 апреля 2020

Как мне найти подколлекцию на основе значения поля? В настоящее время я использую этот код, но он не работает:

var user = db()
    .collection('myCollection')
    .doc()
    .collection('private')
    .where("nam", "==", this.state.passcode);

Я пытаюсь добиться индивидуальной аутентификации, предоставляя пользователям свое имя пользователя и пароль (в данном случае просто пароль). Поэтому я решил сохранить эти учетные данные в отдельной подгруппе внутри документа. Как пользователь может аутентифицироваться, сравнивая значения имени пользователя и пароля со значениями из подгруппы?

Еще один вопрос, хорошая ли подгруппа для учетных данных? Это будет стоить мне столько же, сколько я буду хранить эту информацию в документе?

1 Ответ

0 голосов
/ 10 апреля 2020

Во-первых, то, что вы делаете сейчас, совсем не безопасно. Вы никогда не должны хранить учетные данные пользователя в базе данных, особенно в той, которая напрямую доступна для ваших веб-клиентов и мобильных клиентов. Чтобы сделать это правильно, вы должны использовать Firebase Authentication для входа пользователей. (Вы пометили этот вопрос firebase-authentication, который относится к этому продукту.) На самом деле, обеспечить безопасность очень сложно. Firebase Auth проверит, что все сделано правильно.

Во-вторых, у вашего запроса теперь никогда не будет никаких документов. Это потому, что вы ничего не передаете в doc(), что означает, что он вернет DocumentReference в несуществующий документ со случайным идентификатором. Если вы хотели иметь какой-то уникальный идентификатор для каждого пользователя, возможно, это то, что вы хотели бы передать в doc(), чтобы подколлекция каждого пользователя была правильно идентифицирована.

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