gpt4 book ai didi

javascript - Android 获取唯一的 firebase token 并使用云功能进行身份验证

转载 作者:行者123 更新时间:2023-11-29 18:51:14 24 4
gpt4 key购买 nike

我正在构建一个多人 Android 游戏,它使用 Firebase Cloud Functions。有一些教程解释了如何只允许我的应用程序的用户使用我的云功能(下面的链接),但我不想让所有用户使用我的所有功能,我想根据 Id 授予访问权限。如何从 Android(使用 Java 而不是 Kotlin)为每个用户生成唯一 token ,以及如何在 node.js(Javascript 而不是 TypeScript) 中从该 token 获取 ID?

教程链接:https://firebase.google.com/docs/cloud-messaging/auth-server

最佳答案

从 Firebase Functions 1.0+ 开始,您可以将 2 种 HTTP 函数用于您的 Android 应用。

  1. 直接调用函数。通过 functions.https.onCall
  2. 通过 HTTP 请求调用函数。通过 functions.https.onRequest

我建议您使用 onCall 作为您的函数端点,并使用 FirebaseFunctions 直接调用。这样,您就不需要获取 FirebaseUser token ,因为当您使用 FirebaseFunctions 调用时,它会自动包含在内。

请记住,TypeScript 只是 Javascript 的超集。我仍然会在 Node.js 中给出示例,但建议在 TypeScript 中键入您的 Javascript 代码。

示例

index.js(CloudFunctions 端点)

exports.importantfunc = functions.https.onCall((data, context) => {
// Authentication / user information is automatically added to the request.
if (!context.auth) {
// Throwing an HttpsError so that the client gets the error details.
throw new functions.https.HttpsError('not-authorised',
'The function must be called while authenticated.');
}

const uid = context.auth.uid;
const email = context.auth.token.email;

//Do whatever you want
});

MyFragment.java

//Just some snippets of code examples
private void callFunction() {
FirebaseFunctions func = FirebaseFunctions.getInstance();
func.getHttpsCallable("importantfunc")
.call()
.addOnCompleteListener(new OnCompleteListener<HttpsCallableResult>() {

@Override
public void onComplete(@NonNull Task<HttpsCallableResult > task) {
if (task.isSuccessful()) {
//Success
} else {
//Failed
}
}
});
}

有关可调用函数的更多信息,read here

关于javascript - Android 获取唯一的 firebase token 并使用云功能进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50924981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com