如何使用Firebase函数制作API

时间:2018-07-17 14:11:05

标签: javascript typescript firebase google-cloud-functions

我正在尝试使用Firebase函数。这个想法是创建某种功能的nodejs api。我的config.ts中有以下代码

import * as CORS from 'cors';
export const cors = CORS({ origin: true });

import * as express from 'express';
export const app = express();

app.use(cors);

//// Initialize Firebase ////

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

 admin.initializeApp(functions.config().firebase);

export const db     = admin.firestore();
export const auth   = admin.auth();

和api.ts

import * as functions from 'firebase-functions';

import { app } from './config';

app.get('/converter', (req, res) => res.send('success'));

export const api = functions.https.onRequest(app);

我的期望是,当我导航到https://us-central1-XXXX.cloudfunctions.net/converter时,它应该显示字符串success。不幸的是,我得到的只是这个:

Error: Forbidden
Your client does not have permission to get URL /converter from this server.

我该怎么做呢?

1 个答案:

答案 0 :(得分:3)

从index.js导出函数时:

export const api = functions.https.onRequest(app);

您告诉Cloud Functions的是,您有一个名为api的HTTPS端点,并且您完全通过一个快速应用程序为其提供服务。由于您的函数称为api,因此所有URL均以api为前缀。所以试试这个:

https://us-central1-XXXX.cloudfunctions.net/api/converter