Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase登录Facebook/Google-UID_Javascript_Reactjs_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Javascript Firebase登录Facebook/Google-UID

Javascript Firebase登录Facebook/Google-UID,javascript,reactjs,firebase,firebase-realtime-database,firebase-authentication,Javascript,Reactjs,Firebase,Firebase Realtime Database,Firebase Authentication,我几乎完成了一项工作,遇到了一个大问题,我使用firebase进行了登录/注册,并调用了我在几乎所有项目中使用的一些函数,如firebaseAuth.onAuthStateChanged(user=>{如果(user.uid)做些什么……问题是,我使用Google/Facebook添加了登录,但它没有firebase的uid(如果我做得对),当使用一些社交midia登录firebase时,可以向该用户注册一些uid,这就是我所做的: case this.GOOGLE:

我几乎完成了一项工作,遇到了一个大问题,我使用firebase进行了登录/注册,并调用了我在几乎所有项目中使用的一些函数,如firebaseAuth.onAuthStateChanged(user=>{如果(user.uid)做些什么……问题是,我使用Google/Facebook添加了登录,但它没有firebase的uid(如果我做得对),当使用一些社交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;

Firebase只存储电子邮件+密码用户列表。它不存储与社交提供商(Facebook、谷歌)签署的用户的任何数据