Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
向firebase云函数发送数据_Firebase_React Native - Fatal编程技术网

向firebase云函数发送数据

向firebase云函数发送数据,firebase,react-native,Firebase,React Native,我正在使用firebase云函数在用户注册后将其添加到我的数据库中。 例如,我想添加(当用户被创建时)一个昵称。 在注册表表单中,有一个昵称框,但是我如何将其发送到firebase函数,以便将其添加到数据库中的用户 这是firebase功能: const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config(

我正在使用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)中,如何将数据从该文件发送到函数

我不会在任何地方调用createUserAccount,当此函数发生时会触发它:

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.
}
}

提前谢谢

您不必使用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
    });
});

谢谢,我能举一个我提供的代码的例子吗?我是新手,还在挣扎