Firebase登录Facebook / Google-UID

时间:2018-09-27 21:34:28

标签: javascript reactjs firebase firebase-realtime-database firebase-authentication

我快要完成工作了,遇到了一个很大的问题,我使用firebase进行了登录/注册,并调用了几乎在整个孔项目中使用的一些函数,例如firebaseAuth.onAuthStateChanged(user => {if(user.uid )做某事...问题是,我在Google / Facebook上添加了登录名,并且没有Firebase的uid(如果Im正确执行),当使用一些社交Midia登录Firebase时,有一些事情要做向该用户注册一个uid,这就是我正在做的事情:

   case this.GOOGLE:
              var providerr = new firebase.auth.GoogleAuthProvider();
              var result = await firebase.auth().signInWithPopup(providerr);
              var user = result.user.providerData;
                if(user[0].uid){
                  let nome = user[0].displayName;
                  let nome1 = nome.substr(0,nome.indexOf(' '));
                  let nome2 = nome.substr(nome.indexOf(' ')+1);
                  let usuario = { nome: "",
                              sobrenome:"",
                              email:user[0].email,
                              telefone:"",
                              picture:"" 
                            }

                  usuario.nome = nome1?nome1:"";
                  usuario.sobrenome = nome2?nome2:"";
                  usuario.picture = user[0].photoURL?user[0].photoURL:"";
                  usuario.telefone =   user[0].phoneNumber?user[0].phoneNumber:"";
                  firebaseDatabase.ref().child('/profile/' + user[0].uid )
                  .update(usuario);
                  return 1;
                }
                else return -1;
                 break;

1 个答案:

答案 0 :(得分:1)

Firebase仅存储电子邮件和密码用户的列表。它不会为与社交提供商(Facebook,Google)签名的用户存储任何数据。