0

firebaseを使用してメールとパスワードのログインを行っているアプリがあります。簡単に私はGoogleのサインインを追加しました。問題は、私は電子メールを使用してログインすると、アプリケーションのデータベースにいくつかのデータを作成するときです。これらは一般的に登録時に作成されました。しかしGoogleのサインイン中、私はそれをサインインすることができます。ユーザーが以前にGoogleアカウントでログインしたかどうかを確認するかどうかを確認する必要があります。もしユーザーがGmailのログインを初めて行った場合は、新しいデータを作成します。firebaseで初めてユーザーがGoogleにサインインしたかどうかを確認する方法

答えて

0

最初にサインインしている間に何らかのフラグをデータベースに追加して、それを真にする。ユーザーのログイン時には常に、そのフラグが存在しているかどうかを確認し、古いデータを取得します。それ以外の場合は新しいデータを追加します。

firstlogin: true

これはFacebookのサインインとjavascriptのコードで、あなたのアイデアを持っていることがあります。

var provider = new firebase.auth.FacebookAuthProvider(); 
    function facebookSignin() { 
    firebase.auth().signInWithPopup(provider) 
    .then(function(result) { 
     var user = result.user; 
     firebase.database().ref('/users/'+user.uid).on('value', 
      function(snapshot){ 
      if (!snapshot.exists()) { 
       //user does not exist, add new data 
      }else{ 
       //user exist, retrieve old data 
      } 
     }); //firebase.database().ref ends 
    });//then() ends 
    }//function ends 
+0

私はこのように試していませんでした。私は、UIDごとにインスタンスを取得した後にデータが保存される場所を参照していました。しかし、これは機能しません。私のコメントごとにこの問題を解決するのを手伝ってください。 –

+0

編集された答えを確認してください。 –

+0

私はFirebase Androidのバリューイベントリスナーについて知っています。上記のコードスニペットをJavaごとに簡単に説明できますか? –

0

あなたは共有設定を保存し、ユーザーが初めてで、ログインしているか否かをチェックする必要があります。

このlinkがお手伝いします。 しかし、コードを見る前に、FIREBASEのドキュメントを読んでください。

+0

私はすでにこれをチェックしています –

+0

デバイスが変更された場合、共有設定は機能しません。 –

+0

アプリが再インストールされた場合、または他のデバイスに同じユーザーのために新しいペアのキーが作成されます –

関連する問題