Javascript 如何在firebase中添加数据?
嗯,我正在创建一个新闻源网站。每个用户都可以上传自己的事件。我试图在我的firebase用户数据库中创建一个部分,但我无法向参数发送变量Javascript 如何在firebase中添加数据?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,嗯,我正在创建一个新闻源网站。每个用户都可以上传自己的事件。我试图在我的firebase用户数据库中创建一个部分,但我无法向参数发送变量 firebase.auth().createUserWithEmailAndPassword(email, password).then(function(){ var user = firebase.auth().currentUser; console.log(user); if (user) {
firebase.auth().createUserWithEmailAndPassword(email, password).then(function(){
var user = firebase.auth().currentUser;
console.log(user);
if (user) {
// User is signed in.
user.updateProfile({displayName: document.getElementById("name").value});
var user_id = user.id;
var user_email = user.email;
var user_display_name = user.displayName;
//Saving info in the data base.
var database = firebase.database();
database.ref('users/' + user_id).set({
displayName: user_display_name,
id: user_id,
email: user_email
});
window.location = "index.html"
} else {
alert("Something went wrong.");
}
更新版本:
window.onload = function(){
var createButton = document.getElementById("createButton");
var signin_button = document.getElementById("signin_button");
createButton.onclick = function(){
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
firebase.auth().createUserWithEmailAndPassword(email, password).then(function(result){
console.log('result', result);
if (result) {
// User is signed in.
result.updateProfile({displayName: document.getElementById("name").value});
var user_info = {id: result.uid, email: result.email, display_name: result.displayName};
console.log('user_info', user_info);
// Storing user info into database.
var database = firebase.database();
console.log('user id', user_info.id);
database.ref().child('usersss/' + user_info.id).push({
displayName: user_info.display_name,
id: user_info.id,
email: user_info.email
});
window.location = "index.html"
} else {
alert("Something went wrong.");
}
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode == 'auth/weak-password') {
alert('The password is too weak.');
} else if (errorCode == 'auth/email-already-in-use') {
alert('The email is already in use.');
} else if (errorCode == 'auth/invalid-email') {
alert('The email is not valid.');
}else if (errorCode == 'auth/operation-not-allowed') {
alert('This operation is not allowed.');
}else{
alert(errorMessage);
}
console.log(error);
})
}
}如果“用户/”+用户id中不存在任何内容,则需要使用“推送”而不是“设置”。例如:
database.ref().child('/users/' + user_id).push({
//your code
试试看
下面是一个用于将用户登录到firebase的操作生成器:
export var startLoginWithEmailAndPassword = (email, password) => {
firebase.auth().signInWithEmailAndPassword(email, password).then((result) => {
//handle success
console.log('worked', result);
}).catch((error) => {
//handle error
console.log('error', error);
});
}
在上述情况下,“result”对象将包含用户详细信息。您得到了什么错误?在.thenfunction中-添加如下参数结果:`firebase.auth.CreateUserWithEmail和PasswordEmail,password.thenfunctionresult{Firebase.set失败:第一个参数在属性user.undefined.id中包含未定义的内容请看以下文章:似乎我无法访问用户id…Firebase.set失败:第一个参数在属性user.undefined.idI中包含未定义的内容。我正在使用操作生成器redux编辑我的原始注释,我使用该操作生成器使用电子邮件和p登录assword.注意'result'参数-该对象将包含您要推送到firebase的数据。我认为这应该会有所帮助。如果没有意义,请告诉我。我想我现在就得到了。我要试试。太好了,让我知道它是如何运行的!我遇到的问题是,我不能在part.database的参数中使用变量.ref.child'users/'+user_info.id.set{displayName:user_info.display_name,id:user_info.id,email:user_info.email};
export var startLoginWithEmailAndPassword = (email, password) => {
firebase.auth().signInWithEmailAndPassword(email, password).then((result) => {
//handle success
console.log('worked', result);
}).catch((error) => {
//handle error
console.log('error', error);
});
}