相关疑难解决方法(0)

如何将 Firebase 身份验证令牌传递给 webView 并在 Android 上注册通知

我有一个 Firebase WebApp,它为用户提供信息。除了应用程序之外,我还需要通过 Firebase Cloud Messaging 向使用 Android 应用程序的用户发送推送通知。

目标:用户应该有一次登录应用程序的权限,该应用程序既可以注册他们的通知,又可以通过 WebView 加载 WebApp。

问题:我找不到一种方法可以通过单次登录来实现这一点。在每种情况下,我都需要为本机应用程序登录一次,然后通过 webView 再次登录。


首先,为其他可能正在解决问题的人提供一些参考:

Firebase 身份验证用户界面:https ://firebase.google.com/docs/auth/android/firebaseui

Firebase 数据库:https ://firebase.google.com/docs/database/android/read-and-write

Firebase 云消息传递:https ://firebase.google.com/docs/cloud-messaging/android/topic-messaging

背景:我能够使用 Firebase Auth UI 分别处理每个身份验证以本地处理通知身份验证,然后通过 firebase 服务器处理 webView 身份验证。这有效,但用户体验很差。由于本机身份验证已经提供了一个令牌,因此我应该能够跳过第二阶段并直接让用户登录。这是我尝试过的方法:


第一种方法:

本机登录,然后是 webapp 登录(工作但需要两次登录):按照 Firebase Auth UI 教程,我可以成功登录:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
Run Code Online (Sandbox Code Playgroud)

'user' 不为空,可用于从 firebase 数据库读取数据。然后使用主题 ID 订阅每个 FCM 文档的主题。

订阅通知后,我们然后使用以下行建立与 webapp 的连接:

myWebView.loadUrl("https://someproject.appspot.com/index.html");
Run Code Online (Sandbox Code Playgroud)

第二种方法:

使用 myWebView.loadUrl() 传递用户令牌(授权被拒绝)...基于此信息:https ://firebase.google.com/docs/cloud-messaging/auth-server

类似的东西,我希望:

...

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

  if (user != null) {

  //get …
Run Code Online (Sandbox Code Playgroud)

android android-webview firebase firebase-authentication firebase-cloud-messaging

7
推荐指数
1
解决办法
1545
查看次数

有没有办法让用户在 Android 上使用 Firebase Auth 在本机代码和 WebView 之间保持登录状态?

我对构建本机和基于 WebView 的 Android 屏幕感兴趣。我希望在从本机屏幕导航到 WebView 屏幕时保持用户登录状态。但我不知道如何实现这一目标。

android android-webview firebase-authentication

5
推荐指数
0
解决办法
534
查看次数