web和jvm之间的Firebase身份验证数据不匹配
Firebase Authentication data mismatch between web and jvm
我正在Firebase中试用身份验证组件。
A(我遇到一种情况,web客户端javascript代码firebase-app.js和firebase-auth.js 3.3.0…
firebase.auth().onAuthStateChanged
和firebase.auth().currentUser
返回与jvm不同的预期登录用户值client[com.firebase/firebase-client-jvm"2.5.2"].jvm客户端返回null用户数据。
我的JVM客户端代码取自Firebase的快速入门指南。在里面JVM客户端,既没有调用
onAuthStateChanged
处理程序,也没有CCD_ 4是否返回任何数据。我想知道差异在哪里。web客户端已初始化使用"codepairio.firebaseapp.com">.
var config = { ... authDomain: “<my-firebase-app>.firebaseapp.com" }; firebase.initializeApp(config);
B(java客户端已用"https://.firebaseio.com">。我使用这个URL,因为它在指南中指定并在这里提到。此外,如果你尝试若要使用".firebaseapp.com",您将收到一个错误:"IllegalStateException对于自定义firebase主机,在使用身份验证功能之前,必须首先设置身份验证服务器!">。
所以有了这些,我们就。。。
new Firebase("https://<my-firebase-app>.firebaseio.com”);
关于如何让他们观察到相同的真理来源,有什么想法吗?
===>[EDIT]
好的,我有更深入的了解。事实证明,我使用的是比最新的API(A(更老的firebase。
A(https://www.firebase.com/docs/android/guide/user-auth.html
B(https://firebase.google.com/docs/auth/server/
因此,如果我们查看Firebase关于如何处理用户的文档,我们会看到:
Firebase User对象表示已签名的用户的帐户直到您的Firebase项目中的一个应用程序。应用程序通常有很多注册用户,并且Firebase项目中的每个应用程序都共享一个用户数据库
Firebase User实例独立于Firebase Auth实例。这意味着您可以对不同的用户在同一上下文中,并且仍然调用他们的任何方法。
但i(如果我们的应用程序要处理多个用户,那么FirebaseAuth.getInstance().getCurrentUser()
的概念就没有意义了。此外,FirebaseAuth.getInstance().getCurrentUser()
方法甚至不存在。FirebaseAuth
类文件(在com.firebase/fifirebase-client-jvm"2.5.2"中(没有反映文档。
$ javap -classpath ~/.m2/repository/com/google/firebase/firebase-server-sdk/3.0.1/firebase-server-sdk-3.0.1.jar com.google.firebase.auth.FirebaseAuth
Compiled from "FirebaseAuth.java"
public class com.google.firebase.auth.FirebaseAuth {
public static com.google.firebase.auth.FirebaseAuth getInstance();
public static synchronized com.google.firebase.auth.FirebaseAuth getInstance(com.google.firebase.FirebaseApp);
public java.lang.String createCustomToken(java.lang.String);
public java.lang.String createCustomToken(java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
public com.google.firebase.tasks.Task<com.google.firebase.auth.FirebaseToken> verifyIdToken(java.lang.String);
static com.google.api.client.json.JsonFactory access$000();
static com.google.firebase.auth.internal.FirebaseTokenVerifier access$100(com.google.firebase.auth.FirebaseAuth);
static {};
}
C(到目前为止,在服务器上使用Firebase的身份验证服务对我来说非常不透明。有人能澄清处理多个用户、获取登录用户列表、使用请求令牌验证用户等的语义吗?API在哪里工作?
我实际上从Firebase Support那里得到了关于这个问题的答案。事实证明,根据文档,服务器端(nodejs和java(在身份验证方面可用的功能只有i(创建自定义令牌和ii(验证ID令牌。到目前为止,还不支持处理用户或获取当前用户。
有关在服务器端创建和验证令牌的信息,可以参考本指南了解更多信息。您也可以查看这些帖子以了解更多信息。
- 具有自定义身份验证的Firebase Java客户端
- 是否仍然可以在Firebase 3中对令牌进行服务器端验证
- https://firebase.googleblog.com/2013/03/where-does-firebase-fit-in-your-app.html
Hth
- Sencha Touch和远程服务器上的身份验证
- Javascript清除缓存以清除基本身份验证凭据
- REST的面向公众的身份验证机制
- 当需要身份验证时,ui路由器不会重定向
- 使用Facebook登录,但仍然可以获得:“;此标识池不支持未经身份验证的访问“;
- AJAX HTTP基本身份验证解决方案
- 身份验证后获取Facebook图片
- 显示LinkedIn Api的个人资料数据,无需身份验证
- 在JavaScript/JQuery中通过身份验证正确发布数据
- 来自第三方身份验证的 Firebase 身份验证数据在移动 safari iOS8 中始终为空
- (IONIC)错误: [$injector:unpr] 未知提供程序: 数据服务提供程序 <- 数据服务<- 身份验证控
- 将数据保存在 ember 简单身份验证中的浏览器本地存储中
- 身份验证后无法从 Firebase 读取数据
- 在AngularJS中,在控制器之间共享数据,并添加用于身份验证的回调行为
- 如何让用户看到我的谷歌分析图表数据,而无需进行身份验证/登录过程
- 向firebase数据库添加身份验证数据
- socket.io身份验证与共享会话数据,io.use()的工作原理
- web和jvm之间的Firebase身份验证数据不匹配
- 如何加载html数据一旦用户身份验证
- 如何通过Javascript获得JSON数据与cookie身份验证