如何获取从 Android 上的 Cloud Functions 返回的数据



我正在尝试使用云函数使用自定义令牌对用户进行身份验证。令牌生成的代码为:

export const test = functions.https.onCall(() => {
const uid = 'test_uid'
admin.auth().createCustomToken(uid)
.then((customtoken) => {
console.log(customtoken)
return customtoken
}).catch((error) => {
console.log(error)
})
})

客户端的代码是:

private void getmessage() {
FirebaseFunctions.getInstance()
.getHttpsCallable("test")
.call()
.addOnCompleteListener(this, new OnCompleteListener<HttpsCallableResult>() {
@Override
public void onComplete(@NonNull Task<HttpsCallableResult> task) {
if(task.isSuccessful()){
Toast.makeText(getApplicationContext(), task.getResult().getData().toString(), Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Task is NOT Successful", Toast.LENGTH_LONG).show();
}
}
});
}

令牌已成功记录在控制台中,但在客户端返回 null 值。我做错了什么吗?

可调用函数需要返回一个承诺,该承诺在异步工作完成时解析。 该承诺应通过要发送给客户端的数据来解决。 现在,您的函数不返回任何内容。

试试这个:

return admin.auth()
.createCustomToken(...)
.then(...)
.catch(...)

最新更新