I have a nested async function inside a non-async function. I want the returned value of the async function to be the returned value of the non-async function, so I'd like to wait for the async function to finish before the non-async function returning its value. But currently, I could not come up with any good way to do it. The code snippet is below:
function ValidateAccessCode(phoneNumber, accessCode) {
var message=null
firebase.database().ref().child("phoneNumber").orderByChild('recipient').equalTo(phoneNumber).on("value", function(data) {
var list_phones=data.val()
var keys=Object.keys(list_phones)
phone_code=list_phones[keys[0]].access_code
console.log("phone code is " + phone_code)
if (phone_code == accessCode) {
message= {message: "Your number has been successfully verified!"}
}
else {
message= {message: "Your access code is not correct. Please try again!"}
}
})
return message
}
Thank you all for your help!