Каков наилучший способ проверить наличие документа, содержащего поле с указанным значением c - Firestore? - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу проверить, имеет ли поле nam заданное значение c, и вернуть значение boolen, если оно истинно (или проверить что-то еще - что угодно). Вот мой код, который на самом деле проверяет, но все еще что-то возвращает (некоторые автоматически сгенерированные данные с сервера), и если я проверю null, конечно, он никогда не будет нулевым.

Итак, какой самый простой и лучший способ сделать это? И лучше ли это делать на стороне сервера? PS Я хочу сообщить пользователю, что поле с этим значением найдено!

Вот мой текущий код:

var type_of_vendor = db().collection(this.state.vendor_type).where('nam', '==', this.state.vendor_name);
type_of_vendor.get()
    .then((user) => {
        if (user.exists) {
            this.state.error = true;
            let errorMessage = 'error message';
            this.setState({ errorMessage: errorMessage });
        } else {
            this._signUpVendorvalidateHandler();
        }
    });

1 Ответ

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

Ваш код выглядит нормально для меня. Единственное, что я хотел бы изменить, это добавить .limit(1) к запросу, чтобы вы никогда не получили более 1 документа, даже если есть несколько совпадений.

Выполнение этой серверной части возможно с помощью либо облачных функций или на сервере, которым вы уже управляете.

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

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