2017-07-29 4 views
1

firebaseクラウド機能を使用して登録後にデータベースにユーザを追加しています。 たとえば、(ユーザー作成時に)ニックネームを追加したいとします。 登録フォームにニックネームのボックスがありますが、firebase関数を送信してデータベースのユーザに追加するにはどうすればいいですか?ファイヤーベースクラウド機能にデータを送信

これはfirebase機能です:

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 

admin.initializeApp(functions.config().firebase); 
const ref = admin.database().ref() 

exports.createUserAccount = functions.auth.user().onCreate(event=>{ 
    const uid = event.data.uid 
    const email = event.data.email 
    const photoUrl = event.data.photoUrl || 'https://vignette1.wikia.nocookie.net/paulblartmallcop/images/9/9c/Person-placeholder-male.jpg/revision/latest?cb=20120708210100' 

    const newUserRef = ref.child(`/users/${uid}`) 
    return newUserRef.set({ 
    photoUrl: photoUrl, 
    email: email, 
    }) 
}); 

レジスタ形式は、私は関数にそこからデータを送信することができますどのように、別のファイル(register.js)にありますか?

handlePress = (navigation)=>{ 
if(this.state.password == this.state.verify){ 
    firebaseRef.auth().createUserWithEmailAndPassword(this.state.email, this.state.password).then((newUser)=>{ 
    const resetAction = NavigationActions.reset({ 
     index: 0, 
     actions: [ 
     NavigationActions.navigate({ routeName: 'Home'}) 
     ] 
    }) 
    navigation.dispatch(resetAction) 
    }).catch(function(error){ 
    console.log(error); 
    }); 
}else{ 
    //password not match, show error. 
} 
} 

感謝を事前に:

私は、それがトリガーされ、この関数が発生したときにどこにでもcreateUserAccountを呼び出すことはありません!

答えて

1

firebaseクラウド機能を使用してユーザーにニックネームを追加する必要はありません(ユーザーがすでに作成されている場合)。

ちょうどあなたのjsから呼び出す:あなたはニックネームが満たされているだけのユーザーを作成することができ

ref.child("users").child(uid).child("nickname").set(nickname); 

その他のソリューション。これをuser.displayNameに保存し、onCreateトリガーからアクセスすることができます。

exports.createUserAccount = functions.auth.user().onCreate(event=>{ 
    const user = event.data; // The Firebase user. 

    const uid = user.uid; 
    const email = user.email; 
    const nickname = user.displayName; 
    const photoUrl = user.photoUrl || 'https://vignette1.wikia.nocookie.net/paulblartmallcop/images/9/9c/Person-placeholder-male.jpg/revision/latest?cb=20120708210100'; 

    const newUserRef = ref.child('/users/${uid}'); 

    return newUserRef.set({ 
     nickname: nickname, 
     photoUrl: photoUrl, 
     email: email 
    }); 
}); 
+0

ありがとう、私が提供したコードの例がありますか?私はこれに新しいとまだ苦労して –

+0

他のソリューションは?私は私の答えを更新しました – Pipiks

+0

ありがとう! ....... –

関連する問題