Firebase函数context.auth和context.authType未定义

Min*_*ris 6 firebase google-cloud-functions google-cloud-firestore

我正在深入Firebase功能(服务器端),并且无法从功能中获取身份验证信息.在它最简单的形式中,我将部署到Firebase函数的index.ts如下所示:

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

admin.initializeApp();
export const createOrganization = functions.firestore.document("Organizations/{organizationId}").
    onCreate((snap, context) => {
      console.log(context)
});
Run Code Online (Sandbox Code Playgroud)

我可以从Firebase的日志记录中看到这个函数确实被调用,并且记录的上下文看起来像这样:

{ eventId: 'XXXXX-XXXX-XXXX',
  timestamp: '2018-04-13T21:37:33.349247Z',
  eventType: 'google.firestore.document.write',
  resource: 
  { service: 'firestore.googleapis.com',
     name: 'projects/XXXX/databases/(default)/documents/Organizations/XXXXXXXXXXXX'
  },
  params: { organizationId: 'XXXXXXXXXXXX' } 
}
Run Code Online (Sandbox Code Playgroud)

我希望从文档中可以看到context参数还包含名为"authType"和"auth"的属性,这些属性包含有关发出请求的用户的信息.但是,在尝试了各种各样的事情之后,context.authType和context.auth总是未定义的.

我作为授权用户和未经授权的用户尝试了这一点,没有任何变化.

任何帮助搞清楚为什么没有填充context.authType和context.auth会非常有帮助,谢谢!

Dou*_*son 7

仅为Firebase产品提供身份验证信息,这些产品为每个触发事件的云功能提供身份验证信息.目前,只有实时数据库支持此功能.Firestore支持正在进行中.从理论上讲,云存储也可以提供支持.

它不一致,因为Cloud Functions for Firebase中的每个事件提供程序都由不同的团队驱动,每个团队都有不同的实现和优先级.

  • 这仍然是真的吗? (2认同)
  • @DougStevenson 这方面有什么变化吗?或者您能提供更多信息吗?如果我能够获得删除它的人的身份验证上下文等等(使用 firestore),我正在构建一些东西,这会容易得多 (2认同)
  • @DougStevenson 在这种情况下有什么变化吗?我的 auth 和 authType 仍然未定义。 (2认同)