2014-11-03 84 views
1

我試圖使用Firebase的anonymous authentication來存儲有關訪問我的網站的用戶的數據。但我無法按照所述方式使其工作。獲取「記住」選項以使用Firebase的身份驗證匿名登錄

下面是相關的代碼的簡化片斷:

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儀表板的登錄& Auth選項卡中配置的那樣。

我已經把我的Session Length〜12月在我的設置,所以我希望,如果我加載這個頁面,然後刷新頁面,我會得到這樣的結構:

{ 
    someRandomUserId: { 
     randomPageId_1: { 
      loaded_page: timestamp_1, 
      left_page: timestamp_2 
     }, 
     randomPageId_2: { 
      loaded_page: timestamp_3 
     } 
    } 
} 

但看起來實際上是重新分配用戶標識,而不是跨頁加載持久化。所以我實際上得到這樣一個結構:

{ 
    someRandomUserId_1: { 
     randomPageId_1: { 
      loaded_page: timestamp_1, 
      left_page: timestamp_2 
     } 
    }, 
    someRandomUserId_2: { 
     randomPageId_2: { 
      loaded_page: timestamp_3 
     } 
    } 
} 

我做錯了什麼或這是一個錯誤?

回答

5

您每次調用FirebaseRef.authAnonymously(...)時都會創建一個新的身份驗證會話。此方法只需要調用一次,之後用戶將在刷新頁面時進行身份驗證。

如果您想檢查用戶的當前的認證狀態,才把創建一個新的驗證會話如果用戶目前未被驗證,用於驗證狀態FirebaseRef.getAuth()同步訪問。

+0

這樣做了,謝謝Rob! – 2014-11-03 11:33:20