使用Firestore和algolia错误projectId必须是FirebaseApp.options中的字符串

时间:2018-04-12 13:24:22

标签: firebase google-cloud-firestore algolia

我一直在关注如何将google firestore与algolia搜索服务链接在一起的https://medium.com/@soares.rfarias/how-to-index-firestore-data-into-algolia-using-cloud-functions-9ed5b56baa57教程,虽然我已经完成了大部分步骤,但是我有点坚持运行索引脚本,但我现在已经过去了)我坚持将所有集合从A迁移到BI得到一个错误,对我来说几乎没有任何意义,因为我不知道任何firestore项目ID,我绝对不会直接与之交互错误指向的文件夹,这是整个错误

C:\Users\marti\Desktop\sealstudios\functions\node_modules\@firebase\firestore\dist\cjs\src\api\database.js:211
        throw new error_1.FirestoreError(error_1.Code.INVALID_ARGUMENT, 'projectId must be a string in FirebaseApp.options');
        ^

FirebaseError: projectId must be a string in FirebaseApp.options
at new FirestoreError (C:\Users\marti\Desktop\sealstudios\functions\node_modules\@firebase\firestore\dist\cjs\src\util\error.js:142:28)
at Function.Firestore.databaseIdFromApp (C:\Users\marti\Desktop\sealstudios\functions\node_modules\@firebase\firestore\dist\cjs\src\api\database.js:211:19)
at new Firestore (C:\Users\marti\Desktop\sealstudios\functions\node_modules\@firebase\firestore\dist\cjs\src\api\database.js:110:43)
at Object.firestore (C:\Users\marti\Desktop\sealstudios\functions\node_modules\@firebase\firestore\dist\cjs\src\platform\config.js:44:76)
at FirebaseAppImpl._getService (C:\Users\marti\Desktop\sealstudios\functions\node_modules\@firebase\app\dist\cjs\src\firebaseApp.js:117:66)
at FirebaseAppImpl.(anonymous function) [as firestore] (C:\Users\marti\Desktop\sealstudios\functions\node_modules\@firebase\app\dist\cjs\src\firebaseApp.js:304:31)
at Object.serviceNamespace [as firestore] (C:\Users\marti\Desktop\sealstudios\functions\node_modules\@firebase\app\dist\cjs\src\firebaseApp.js:289:32)
at Object.<anonymous> (C:\Users\marti\Desktop\sealstudios\functions\indexing.js:12:21)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:0)

问题可能出在Firebase设置中。部署托管应用程序后,我删除了config / firebase.js中的设置,然后在本地8080服务器上发现了相同的错误。

我的设置:

export default {
    apiKey: "",
    authDomain: "",
    databaseURL: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: ""
  }

检查您的连接设置=)

答案 1 :(得分:0)

我发现了相同的问题,何时将代码部署在Heroku上。但是,这可以通过在Heroku上添加环境变量来解决。因为,占位符的所有详细信息都应该是数据库URL之外的字符串。

因此,如果您在.env中的local上设置了变量,则必须在要部署的服务器上添加环境变量。