【问题标题】:Pass Data to Firebase auth.user().onCreate Cloud Function将数据传递给 Firebase auth.user().onCreate Cloud 函数
【发布时间】:2021-04-07 22:47:25
【问题描述】:

我正在测试 firebase 云功能,我很好奇如何将数据从我的表单传递到云功能。我创建了一个接受多个字段的注册表单 - 我的计划是使用 firebase 创建一个身份验证帐户,并拥有一个在创建身份验证帐户时运行的云功能。此函数将在 Firestore 中创建一个用户文档。

下面的代码让我了解我的前端设置


import React from "react"
import firebase from "firebase"

// create some config for firebase

const app = firebase.initializeApp(config)
const auth = app.auth()

function Form({onSubmit}){

  function handleSubmit(e){
    e.preventDefault()
    
    const {email, password, firstName, lastName, age} = e.target.elements
    const user = {email: email.value, password: password.value, firstName: firstName.value, lastName: lastName.value, age: age.value}
  
    onSubmit().then(() => {}, (err) => {})
  }
  
  return <form onSubmit={handleSubmite}>
     {/*form fields..*/}
  </form>
}

// Register function for firebase

function register(email, password){
  return auth.createUserWithEmailAndPassword(email, password)
}

// Parent for form component
function Container(){

  return <Form onSubmit={register}/>
}

这是我的云功能的样子:

const functions = require("firebase-functions")
const admin = require("firebase-admin")

admin.initializeApp()
const db = admin.firestore()

const createUser = (userData, context) => {
  const { email } = userData
  console.log(userData)

  return db
    .collection("users")
    .doc()
    .set({
      email,
      firstName: "TEST",
    })
    .catch(console.error)
}

module.exports = {
  authOnCreate: functions.auth.user().onCreate(createUser),
}

知道怎么做吗?我想错了吗?我对 firebase 有点陌生。

TLDR;如何将自定义数据从表单发送到云函数,该函数将在 auth 中创建新用户时在 firestore 中创建用户?

【问题讨论】:

    标签: reactjs firebase firebase-authentication google-cloud-functions


    【解决方案1】:

    我的计划是使用 firebase 创建一个身份验证帐户,并在创建身份验证帐户时运行一个云功能。此函数将在 Firestore 中创建一个用户文档。

    这是不可能的。由于您的 Cloud Functions 在 auth.user().onCreate 上触发,因此它只能访问该事件可用的信息。您不能将附加信息传递给后台函数。

    最常见的解决方案是:

    1. 在创建用户后编写文档,可以直接从客户端直接调用,也可以让客户端直接调用另一个云函数。
    2. 将创建用户和文档所需的所有数据传递给 Cloud Function,然后让 Cloud Function 处理用户帐户和文档的创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2019-02-13
      • 2017-12-13
      • 2015-12-14
      相关资源
      最近更新 更多