【发布时间】: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