我正在尝试使用Firebase的anonymous authentication存储有关访问我的网站的用户的数据。但是我很难按说明进行操作。
这是相关代码的简化片段:
var firebase_root = new Firebase('https://example.firebaseio.com');
firebase_root.authAnonymously(function(error, authData) {
var page = firebase_root.child(uid).push(); // create a unique reference for this pageload
page.child('loaded_page').set(Firebase.ServerValue.TIMESTAMP);
page.child('left_page').onDisconnect().set(Firebase.ServerValue.TIMESTAMP);
});
在用于匿名身份验证的文档中,它说
如果未指定-或将其设置为默认-会话将一直保留,直到您在Firebase仪表板的“登录和身份验证”选项卡中进行了配置。
我在设置中将
Session Length
设置为12个月,因此我希望如果加载此页面然后刷新页面,我将得到如下结构:{
someRandomUserId: {
randomPageId_1: {
loaded_page: timestamp_1,
left_page: timestamp_2
},
randomPageId_2: {
loaded_page: timestamp_3
}
}
}
但是看起来它实际上是在重新分配用户ID,而不是在整个页面加载期间都将其保留。所以我实际上得到的是这样的结构:
{
someRandomUserId_1: {
randomPageId_1: {
loaded_page: timestamp_1,
left_page: timestamp_2
}
},
someRandomUserId_2: {
randomPageId_2: {
loaded_page: timestamp_3
}
}
}
我是在做错什么还是错误?
最佳答案
每次调用FirebaseRef.authAnonymously(...)
时,您都在创建一个新的身份验证会话。此方法只需要调用一次,之后用户将在刷新页面时进行身份验证。
如果您要检查用户的当前身份验证状态,并且仅当用户当前未通过身份验证时才创建新的身份验证会话,请对身份验证状态FirebaseRef.getAuth()
使用同步访问器。
关于javascript - 获取“记住”选项以使用Firebase的authAnonymously,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26706592/