首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firebase管理员正在寻找一个与我目前正在处理的本地环境不同的默认项目

Firebase管理员正在寻找一个与我目前正在处理的本地环境不同的默认项目
EN

Stack Overflow用户
提问于 2020-03-13 13:24:25
回答 1查看 253关注 0票数 1

我正在本地环境中构建这个云功能,我需要保存一些可以修复的内容:

下面是我如何初始化firebase-admin应用程序:

myFunction.js

代码语言:javascript
运行
复制
if (!adminHasInitialized) {
  console.log("INITIALIZING ADMIN APP");                    // THIS IS BEING LOGGED
  admin.initializeApp({
    credential: admin.credential.applicationDefault(),
  });
  adminHasInitialized = true;
}

下面是我试图更新Firestore的方法:

代码语言:javascript
运行
复制
await admin.firestore().collection("myCollection").doc("myDoc").update({
  ...
});

注意:,我在MY_PROJECT_1上工作

这就是我所犯的错误:

详细信息:“没有要更新的文档: projects/MY_PROJECT_2/databases/(default)/documents/myCollection/myDoc',

问题

不知怎么的,firebase-admin正在另一个数据库中查找我所拥有的不同项目的firebase-admin

当我运行:firebase projects:list时,我得到的是:

代码语言:javascript
运行
复制
Project Display Name   │ Project ID                  │ Resource Location ID
MY_PROJECT_1           │ MY_PROJECT_1 (current)      │ us-central1
MY_PROJECT_2           │ MY_PROJECT_2                │ us-central1

所以目前的项目是正确的。

此外,我还有这个文件,我将默认设置为MY_PROJECT_1

.firebaserc

代码语言:javascript
运行
复制
{
  "projects": {
    "default": "MY_PROJECT_1"
  }
}

在初始化应用程序时,我还尝试添加DB URL,如下所示:

代码语言:javascript
运行
复制
admin.initializeApp({
  credential: admin.credential.applicationDefault(),
  databaseURL: "https://MY_PROJECT_1.firebaseio.com"
});

但我总是犯同样的错误。

注意:通过以下命令在本地环境中使用babel-node运行该函数:

npx babel-node functions/src/myFunction.js

问题

firebase-admin是如何获得与我目前正在处理的默认项目不同的呢?

更新1

我认为firebase-admin是从安装在我的PC上的gcloud SDK获得默认配置。

发自:

C:\Users\USER\AppData\Roaming\gcloud\configurations\config_default

config_default:

代码语言:javascript
运行
复制
[core]
account = my@email.com
project = MY_PROJECT_2     // MAYBE IT IS COMING FROM HERE

更新2

到目前为止,我唯一能做到的就是:

代码语言:javascript
运行
复制
admin.initializeApp({
  projectId: "MY_PROJECT_1",
  databaseURL: "https://MY_PROJECT_1.firebaseio.com"
});

当我在本地运行这个函数时,这给了我正确的项目。

EN

回答 1

Stack Overflow用户

发布于 2020-03-13 14:17:49

由于您不再需要使用admin.initializeApp(functions.config().firebase);初始化Firebase函数的1.0.0版本,请参阅文档这里,这说明:

firebase-admin现在在云函数运行库中没有任何参数的情况下被初始化。

因此,请试着:

代码语言:javascript
运行
复制
if (!adminHasInitialized) {
  console.log("INITIALIZING ADMIN APP");                   
  admin.initializeApp();
  adminHasInitialized = true;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60671320

复制
相关文章

相似问题

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