1

当用户在我的系统上注册时,我会在内部创建用户,然后允许用户使用 firebase 客户端库向 Firebase 注册。这会为用户生成一个会话令牌。稍后,当用户再次启动应用程序时,应用程序会自动将用户登录,如下所示:

ref.authWithCustomToken(sessionToken, function(error, authData) {...
  debugger

我已经验证了 sessionToken 在函数执行时可用,但debugger从未到达,也没有发出任何错误。

任何帮助表示赞赏!

4

2 回答 2

1

我知道这有点晚了,但我遇到了类似的问题,这让我摸不着头脑,所以以防万一它对其他人有帮助,这就是我发现的。

如果我authWithCustomToken使用使用一个 uid (uid1) 生成的令牌运行,然后使用不同的 uid (uid2) 在同一个 ref 上再次运行它,则第二次不会触发回调。

在我的例子中,我在同一个节点进程中使用的不同模块中声明了相同的 ref,并试图用不同的 uid 对它们进行身份验证。尽管我已经两次声明了 ref,但 Firebase 仍然认为它是同一个 ref,因为它在同一个进程中并且引用了同一个 Firebase 位置。通过在父模块中声明和授权 ref,我可以onAuth在子模块中使用并且onAuth所有回调都按预期触发。

于 2015-11-20T08:44:45.727 回答
0

我在 iOS 上遇到了类似的问题,安装后从未调用过 authWithCustomToken 回调。所有连续的发射都运行良好。我的发现可能是相关的,所以我想我分享它们。

问题是我打电话

func applicationWillResignActive(application: UIApplication) {
    Firebase.goOffline()
}

func applicationWillEnterForeground(application: UIApplication) {
    Firebase.goOnline()
}

在 AppDelegate 中。事实证明,如果您在没有先登录的情况下调用 Firebase.goOnline(),它会弄乱回调。一旦我删除了这两行,一切正常。

于 2016-02-24T07:06:25.887 回答