Firebase函数context.auth和context.authType undefined

时间:2018-04-13 21:50:32

标签: firebase google-cloud-firestore google-cloud-functions

我正在深入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)
});

我可以从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' } 
}

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

我已尝试将此作为授权用户和未经授权的用户进行更改。

任何帮助找出为什么没有填充context.authType和context.auth会非常有用,谢谢!

1 个答案:

答案 0 :(得分:7)

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

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