新しいユーザーにサインアップして(authで)、それらの名前とその他の情報をリアルタイムDBのユーザーリストデータベースに追加したいと考えています。私は何が間違っているのか分かりません。認証は素晴らしいですが、新しいユーザーはDBに追加されていません。ユーザーを認証してDBを同時に追加する
以下のコードでは、それらを登録してDBに名前を追加し、確認メールを送信します。
function handleRegister() {
var ref = firebase.database().ref();
console.log(email);
console.log(fname);
if (email.length < 4) {
alert('Please enter an email address.');
return;
}
if (password.length < 4) {
alert('Please enter a password.');
return;
}
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
var uid = firebase.auth().currentUser.uid;
// [START_EXCLUDE]
if (errorCode == 'auth/weak-password') {
alert('The password is too weak.');
firebase.auth().onAuthStateChanged(user => {
if(user) {
var postData = {
Fullname: fname + lname,
email: email,
};
// Write the new post's data simultaneously in the posts list and the user's post list.
var updates = {};
updates['/Users/' + uid ] = postData;
return firebase.database().ref().update(updates);
}
})
} else {
console.log(error);
}
})
認証と送信電子メールの検証はうまく機能しますが、名前はDBに追加されません。また、認証を得るためのより良いアプローチがある場合は、DBに追加して電子メールの確認を送信してください、私に教えてください。助けてください。
これは、更新に加え
var addusertoDB = function(user){
var uid = firebase.getAuth().uid;
var postData = {
Firstname: fname,
Lastname: lname,
email: email,
}
// Get a key for a new Post.
var newPostKey = firebase.database().ref().child('Users').push().uid
// Write the new post's data simultaneously in the posts list and the user's post list.
var updates = {};
updates['/Users/' + newPostKey] = postData;
// updates['/user-posts/' + '/' + newPostKey] = postData;
return firebase.database().ref().update(updates);
}
で、登録ハンドルが
firebase.auth().createUserWithEmailAndPassword(email, password).then(
addusertoDB).catch(handleCreateUserError);
に更新されている、それは最終的にDB(UIDなし)が、firebase.getAuth()に追加されています。UID uidを取得していません。私が得ているエラーは "firebase.getAuthは関数ではありません"
'キャッチ()は、'エラー処理のために使用されているが....あなたはこの内部 'その後、()'ではない 'キャッチ()' – charlietfl
[OK]を実行する必要があります、私はキャッチを交換しますか?、申し訳ありません。私はfirebaseで本当に新しいです。あなたは正しい形式を投稿するのを手伝ってくれますか? – Ola