0
我在學校項目中使用Firebase,並且我遇到同樣的問題一段時間...我查看過各種網站,但找不到任何具有相同問題的人..將驗證數據添加到Firebase數據庫
用戶身份驗證工作正常,但問題在於將用戶數據保存在數據庫中。 我有兩種可用的方式進行驗證:
- 電子郵件和密碼;
- Facebook。
隨着電子郵件和密碼,數據被成功地在數據庫中寫的,我用下面的JavaScript代碼:
function signUp(){
//Get DOM data
const email = String(document.getElementById('TXTEmail').value);
const pass = String(document.getElementById('TXTPassword').value);
const name = String(document.getElementById('TXTNome').value);
const gender = document.registo.sexo.value;
const auth = firebase.auth();
var promise = auth.createUserWithEmailAndPassword(email,pass);
promise.catch(e => console.log(e.message));
firebase.database().ref('users/' + firebase.auth().currentUser.uid).set({
name : name,
email : email,
gender : gender,
uid: firebase.auth().currentUser.uid
});
}
但是,使用Facebook的功能時無法保存數據,我只能驗證用戶,和我使用的代碼如下:
function signUpFacebook(){
var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithRedirect(provider);
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
// This gives you a Facebook Access Token. You can use it to access the Facebook API.
var token = result.credential.accessToken;
}
// The signed-in user info.
var user = result.user;
const name = user.displayName;
const email = user.email;
const photo = user.photoURL;
if(user != 0) {
firebase.database().ref('users/' + user.uid).set({
name: nome,
email: email,
photo: photo,
uid: user.uid
});
}
//Tests only
if(user != 0){
console.log("name: "+user.displayName);
console.log("email: "+user.email);
console.log("photoUrl: "+user.photoURL);
console.log("uid: "+user.uid);
}
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
});
}
而且我得到我的控制檯上輸出: Console output。
name: Rafael Veloso
email: rafael****@gmail.com
photoUrl: scontent.xx.fbcdn.net/v/t1.0-1/s100x100/…
uid: **HY43Tl******KoO6OhZjG****
而且,我database.rules.json是:
{
"rules": {
".read": true,
".write": true
}
}
有誰知道的是,我有什麼問題? 謝謝。
請將控制檯輸出作爲實際文本發佈,而不是圖片。爲什麼你不允許張貼圖片有很好的理由,這是其中之一。 –
對不起@FrankvanPuffelen,輸出結果爲: name:Rafael Veloso email:rafael****@gmail.com photoUrl:https://scontent.xx.fbcdn.net/v/t1.0-1/s100x100 /13139253_951385514977558_8691565872507444364_n.jpg?oh=51b7c82e907fdfa411ccaf3c58afe224&oe=58904789 uid:** HY43Tl ****** KoO6OhZjG ***** –