[英]Pass Data to Firebase auth.user().onCreate Cloud Function
我正在測試 firebase 雲功能,我很好奇如何將數據從我的表單傳遞到雲 function。 我創建了一個接受多個字段的注冊表單 - 我的計划是使用 firebase 創建一個身份驗證帳戶,並擁有一個雲 function,該雲在創建身份驗證帳戶時運行。 這個 function 將在 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}/>
}
這是我的雲 function 的樣子:
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; 如何將自定義數據從表單發送到雲 function,這將在 auth 中創建新用戶時在 firestore 中創建用戶?
我的計划是使用 firebase 創建一個身份驗證帳戶,並擁有一個在創建身份驗證帳戶時運行的雲 function。 這個 function 將在 Firestore 中創建一個用戶文檔。
這是不可能的。 由於您的 Cloud Functions 在auth.user().onCreate
上觸發,因此它只能訪問該事件可用的信息。 您不能將附加信息傳遞給后台 function。
最常見的解決方案是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.