首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于访问其他项目db的Firebase函数配置

用于访问其他项目db的Firebase函数配置
EN

Stack Overflow用户
提问于 2017-05-12 14:14:13
回答 2查看 2.6K关注 0票数 8

我需要创建一个云函数,它将访问运行在另一个项目中的Firebase DB。如果它正在访问当前项目中的db,我可以使用以下代码

代码语言:javascript
运行
复制
const functions = require('firebase-functions');

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

但是,我希望functions.config().firebase返回其他项目的信息(最重要的是返回凭据)。有什么简单的方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-12 17:24:57

functions.config().firebase是一个保留的命名空间,您将无法覆盖它。但是,您可以自己进行跨项目初始化。我会这样做:

首先,将另一个项目的下载服务帐户放到functions目录中。叫它<project_id>-sa.json。接下来,设置一些环境配置(app.other_project_id只是一个示例名称,而不是一个要求):

代码语言:javascript
运行
复制
firebase functions:config:set app.other_project_id="<the_project_id>"

现在,在代码中,您可以初始化Admin,如下所示:

代码语言:javascript
运行
复制
const functions = require('firebase-functions');
const admin = require('firebase-admin');

if (!functions.config().app || !functions.config().app.other_project_id) {
  throw new Error('Cannot start app without app.other_project_id config.');
}

const FB_PROJECT_ID = functions.config().app.other_project_id;
const SERVICE_ACCOUNT = require(`./${FB_PROJECT_ID}-sa.json`);

admin.initializeApp({
  databaseURL: `https://${FB_PROJECT_ID}.firebaseio.com`,
  credential: admin.credential.cert(SERVICE_ACCOUNT)
});

这将初始化另一个项目的Admin。

票数 8
EN

Stack Overflow用户

发布于 2020-05-23 10:25:31

而不是

代码语言:javascript
运行
复制
if (!functions.config().app || !functions.config().app.project_id) {

你应该用

代码语言:javascript
运行
复制
if (!functions.config().app || !functions.config().app.fb_project_id) {

注意: project_id中的错误

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43939932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档