0

我有一款应用程序,它具有使用Firebase进行电子邮件和密码登录的功能。为了方便起见,我添加了Google登录功能。问题是当我使用电子邮件登录时,应用程序会在其数据库中创建一些数据。这些通常是在注册时创建的。但是在Google登录时,我可以将其登录。我应该如何登录请检查用户是否早些时候使用Google帐户登录过。如果用户第一次使用gmail登录,它将创建新数据,否则它将检索数据,请在我受到攻击时帮助我。如何检查刚刚Google用户在Firebase中第一次登录的用户

回答

0

第一次登录时在数据库中添加某种标志并将其设置为true。每当用户登录时,检查该标志是否存在并为真,然后检索旧数据,否则添加新数据(或任何你想要的)。

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

这将为同一用户创建一对新的密钥,如果应用程序被重新安装或在其他设备上 –

相关问题