Javascript react firebase上的“admin.firestore.collection不是函数”-如何传递启动的管理对象?

Javascript react firebase上的“admin.firestore.collection不是函数”-如何传递启动的管理对象?,javascript,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Firebase,Google Cloud Firestore,Google Cloud Functions,我有一个小的云函数,当有人被邀请参加一个项目时会触发。它应该将通知保存在/users/{id}/annotations中 这一切都很好,没有任何错误。关键部分是“sendAnnotationadmin,userId,payload”,定义如下: export function sendAnnotation(admin, userId, payload) { console.log('Invitation sent to ' + userId + ' with payload: ' + J

我有一个小的云函数,当有人被邀请参加一个项目时会触发。它应该将通知保存在/users/{id}/annotations中

这一切都很好,没有任何错误。关键部分是“sendAnnotationadmin,userId,payload”,定义如下:

export function sendAnnotation(admin, userId, payload) {
    console.log('Invitation sent to ' + userId + ' with payload: ' + JSON.stringify(payload))

    admin.firestore
      .collection(`/users/${userId}/annotations`)
      .add(payload)
      .catch( err => {
        console.log(err.message || err)
      })

  }
admin.firestore().collection(...)
admin.firestore.collection(...)
此处,firebase控制台打印admin.firestore.collection不是一个函数。由于admin.firestore.collection的语法与文档中的语法完全相同,我想知道传递启动的admin对象是否有任何问题


有什么想法吗?

您显示的两位代码并不完全相同。第一次使用admin SDK时,您这样称呼它:

export function sendAnnotation(admin, userId, payload) {
    console.log('Invitation sent to ' + userId + ' with payload: ' + JSON.stringify(payload))

    admin.firestore
      .collection(`/users/${userId}/annotations`)
      .add(payload)
      .catch( err => {
        console.log(err.message || err)
      })

  }
admin.firestore().collection(...)
admin.firestore.collection(...)
第二次使用时,您这样称呼它:

export function sendAnnotation(admin, userId, payload) {
    console.log('Invitation sent to ' + userId + ' with payload: ' + JSON.stringify(payload))

    admin.firestore
      .collection(`/users/${userId}/annotations`)
      .add(payload)
      .catch( err => {
        console.log(err.message || err)
      })

  }
admin.firestore().collection(...)
admin.firestore.collection(...)

admin.firestore是一个函数,而不是属性,因此您需要将其作为函数调用。

哦,就是这样!非常感谢。