我有一个firebase云功能,它基于新的身份验证触发,该身份验证将用户的信息记录在firebase实时数据库中。由于某种原因,云功能没有触发,用户没有在数据库中注册。 这是我尝试部署的云功能代码
Index.js
const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase);
const ref = admin.database().ref()
exports.creatUserAccount = functions.auth.user().onCreate(event => {
const uid = event.data.uid
const displayName = event.data.displayName
const email = event.data.email
const photoURL = event.data.photoURL || 'https://yt3.ggpht.com/-Sz69_iENQd4/AAAAAAAAAAI/AAAAAAAAAAA/zLg-bS6DJFo/s900-c-k-no-mo-rj-c0xffffff/photo.jpg'
const phoneNumber = event.data.phoneNumber || ''
const batchList = ['']
const newUserRef = ref.child(`/users/students/${uid}`)
return newUserRef.set({
displayName: displayName,
email: email,
photoURL: photoURL,
uid: uid,
isDeleted: false,
phoneNumber: phoneNumber,
batchList: batchList,
})
})
exports.deleteUserAccount = functions.auth.user().onDelete(event => {
const uid = event.data.uid
const userRef = ref.child(`users/students/${uid}`)
return userRef.update({ isDeleted: true })
})

firebase日志是空的,并没有帮助我解决问题
答案 0 :(得分:0)
你的代码很好。首先,检查包版本。
-- current
"firebase-admin": "^5.5.1",
"firebase-functions": "^0.7.5"
答案 1 :(得分:0)
如果您有可能在本地模拟云功能,则以下网址可能对您有用。
https://firebase.google.com/docs/functions/local-emulator
基本上,如文档中所述,您必须生成服务帐户密钥,将包含此密钥的JSON文件下载到开发工作站并创建引用所述JSON文件的系统变量GOOGLE_APPLICATION_CREDENTIALS
。 / p>
如文档中所述,如果您希望在本地测试不是由数据库/云防火墙更改触发的触发器,则此服务帐户密钥是必不可少的。
希望有所帮助。