Выполняйте вызывающую функцию далее, только если Promise возвращает true в функции Firebase Cloud: Typescript - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть функция HTTPS Cloud:

export const verifyUser = functions.https.onRequest((req,response) =>{
        if(verifyUserRequest(“xxx”,”yyy”)) console.log(“valid user”)
        else console.log(“invalid user”)
    })


verifyUserRequest(uid: any, userToken: any): Promise<boolean>{
        const firestoreDb = admin.firestore();
        let userRef = firestoreDb.collection('India').doc(uid)
        return userRef.get().then(doc => {
            if(!doc.exists) return false
            else if(doc.get('authToken')===userToken){
                console.log('user token valid');
                return true
            }
            else return false 
        })
        .catch(err => {
            console.log(err)
            return false
        })
    }

На основе возвращенного значения verifyUserRequest() при вызове на export const verifyUser я хочу соответствующий журнал. Но эта функция - async функция. Как мне реализовать это в Typescript?

1 Ответ

0 голосов
/ 05 февраля 2020

Для любой функции, которая возвращает обещание, используйте then() (или синтаксис async / await), чтобы получить возвращаемое значение. Это работает точно так же, как API-интерфейсы Firestore, которые возвращают обещание, которое вы уже используете. Это также стандартная обработка обещаний JavaScript, о которой вы можете узнать в поисках.

export const verifyUser = functions.https.onRequest((req,response) =>{
    verifyUserRequest("xxx", "yyy")
    .then(result => {
        if(result) console.log("valid user")
        else console.log("invalid user")
    })
})

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

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