仅当Firebase Cloud function:Typescript中Promise返回true时,才进一步执行调用函数
我有一个HTTPS云函数:仅当Firebase Cloud function:Typescript中Promise返回true时,才进一步执行调用函数,typescript,firebase,google-cloud-functions,Typescript,Firebase,Google Cloud Functions,我有一个HTTPS云函数: 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)
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
})
}
export const verifyUser=functions.https.onRequest((请求,响应)=>{
if(verifyUserRequest(“xxx”、“yyy”))console.log(“有效用户”)
else console.log(“无效用户”)
})
verifyUserRequest(uid:any,userToken:any):承诺{
const firestoreDb=admin.firestore();
让userRef=firestoreDb.collection('India').doc(uid)
返回userRef.get()。然后(doc=>{
如果(!doc.exists)返回false
else if(doc.get('authToken')==userToken){
log('user token valid');
返回真值
}
否则返回false
})
.catch(错误=>{
console.log(错误)
返回错误
})
}
根据在export const verifyUser
调用时返回的verifyUserRequest()
值,我需要相应的日志。
但该函数是
async
函数。如何在Typescript中实现它?对于任何返回承诺的函数,请使用then()
(或异步/等待语法)获取返回值。这与Firestore API的工作原理完全相同,Firestore API返回您现在已经在使用的承诺。这也是标准的promise处理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")
})
})
您还应该让函数向调用者发送一个结果,这样它就不会超时