2017-05-26 100 views
1

我正在运行亚马逊Mechanical Turk的众包网站。 Firebase用于跟踪用户的中间信息。Firebase中的匿名用户

由于AMT身份验证与Firebase无关,因此我无法使用这些身份验证用户身份。为了能够将数据写入Firebase,必须存在身份验证。

我目前的解决方案是使用匿名用户。虽然它有效,但我发现每次重新加载页面时,都会创建一个新的匿名用户。这可能不是可扩展的,因为在开发过程中,我创建了约6000个匿名用户。

我该如何解决这个问题?

+0

您使用的是JS库?如果是这样,这个bug在Firebase JS 4.0.0版中得到修复。 – bojeil

回答

4

这听起来像是你在每页加载时都是calling signInAnonymously(),这确实会创建一个新的匿名用户。

而应该monitor authentication state当他们尚未登入的用户只登录:

firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    // User is signed in. 
    } else { 
    firebase.auth().signInAnonymously().catch(function(error) { 
     // Handle Errors here. 
     var errorCode = error.code; 
     var errorMessage = error.message; 
     // ... 
    }); 
    } 
});