Триггерное событие Firestore WEB - PullRequest
0 голосов
/ 14 марта 2020

Я запускаю свою базу данных, чтобы убедиться, что «id» уже используется, если нет, я могу зарегистрироваться, иначе я не могу использовать этот идентификатор, и мне нужно попробовать другой.

code :

db.collection("places").get().then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
    // console.log(doc.id)
    db.collection("places").doc(doc.id).collection("Local").where("id", "==", id_user)
        .get()
        .then(function (querySnapshot) {
            querySnapshot.forEach(function (doc2) {
                //cpnj is already registred
                if (doc2.exists) {
                    console.log("id already exist")
                    document.getElementById("preloader").style.display = "none";
                    alert("id in use, try another id");
                } else{
                    //register the user
                }
            });
        })
        .catch(function (error) {
            console.log("Error getting documents: ", error);
        });
    });
});

Проблема в том, что когда id не существует, "else" внутри функции не является "actived", потому что условие Firebase ".where (" id "," == ", id_user ) "не существует, поэтому запрос не выполнен.

Как я могу вызвать это и после проверки, что" id "не используется и продолжить регистрацию?

1 Ответ

1 голос
/ 14 марта 2020

В пределах всего oop поверх снимка запроса документ всегда будет существовать. Если результатов нет, снимок запроса будет пустым, и сейчас он просто не введет ваш forEach l oop.

. Что вы ищете, так это то, что снимок запроса имеет какие-либо результаты. , что вы можете сделать с:

if (querySnapshot.empty) {
    //register the user
} else{
    console.log("id already exist")
    document.getElementById("preloader").style.display = "none";
    alert("id in use, try another id");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...