私は現在、ユーザーが自分のGoogleアカウントでログインしてアプリにアクセスするようにFirebaseを使用しています。ただし、ページを閉じる/新しいタブでページを開くには、ユーザーが再度サインインする必要があります。ユーザーが再ログインするのを防ぐ方法はありますか?ここでGoogleログインでFirebaseのログインを維持しますか?
は、私は(firebaseドキュメントからの例)を使用していますログインコードである
function firebaseLogin() {
firebase.auth().signInWithPopup(provider).then(function(result) {
var token = result.credential.accessToken;
var user = result.user;
document.getElementById('user-name').innerHTML = user.displayName;
document.getElementById('propic').src = user.photoURL;
addClass(login, 'hidden');
removeClass(logout, 'hidden');
var snackbarData = {
message: 'Login Successful',
timeout: 2000
};
snackbarContainer.MaterialSnackbar.showSnackbar(snackbarData);
console.log(user);
reloadList();
}).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
var email = error.email;
var credential = error.credential;
var snackbarData = {
message: 'Login Unsuccessful',
timeout: 2000
};
snackbarContainer.MaterialSnackbar.showSnackbar(snackbarData);
console.error(error);
});
}
[最小限のコードを再現する問題](http://stackoverflow.com/help/mcve)、それはあなたのアプリがそれがやっているように動作している理由を言うことは不可能です。 –
使用している環境を指定してください。また、現在の認証状態を確認するために認証状態オブザーバを使用していることを確認してください。ロード時にfirebase.auth()。currentUserを同期してチェックすると、現在ログインしているユーザは返されません(状態判定は非同期操作です)。いくつかの開発者はこの間違いを犯します。 – bojeil
ああ、意味があります。私はこのプロジェクトに戻ったときに、正式なオブザーバーを使うことに切り替えます。環境に関しては、これはWebプロジェクトで、ブラウザ(クライアント側)にjavascriptだけを使用しています。 – ROODAY