Firebase云功能不会触发用户创建

时间:2017-12-21 12:06:48

标签: firebase firebase-realtime-database firebase-authentication google-cloud-functions

我有一个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日志是空的,并没有帮助我解决问题

2 个答案:

答案 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>

如文档中所述,如果您希望在本地测试不是由数据库/云防火墙更改触发的触发器,则此服务帐户密钥是必不可少的。

希望有所帮助。