firebase - Electron 应用程序上的 Firebase 错误 : Failed to load gRPC

标签 firebase electron google-cloud-firestore grpc firebase-admin

我正在构建一个 Electron 应用,在 renderer.js 文件中,我使用 Firebase Admin 来获取 Firestore 数据。但是,每当我运行它时,它都会在日志中返回此错误..

Error: Failed to load gRPC binary module because it was not installed for the current system
Expected directory: electron-v2.0-darwin-x64-unknown
Found: [node-v48-darwin-x64-unknown]
This problem can often be fixed by running "npm rebuild" on the current system

我尝试运行“npm rebuild”,但仍然没有修复它。 我还尝试更新 Firebase Admin 和 gRPC。

这是 renderer.js 文件中的代码...

// This file is required by the index.html file and will
// be executed in the renderer process for that window.
// All of the Node.js APIs are available in this process.

const admin = require('firebase-admin');

var serviceAccount = require('./credentials.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://mytestapp.firebaseio.com"
});

var db = admin.firestore();
const settings = {
  timestampsInSnapshots: true
};
db.settings(settings);

function LoadList() {

  db.collection("Orders").get().then(function(Collection){

    Collection.forEach(function(OrderDoc){
      console.log(OrderDoc.id)
    })

  }).catch(function(err){
    console.error(err);
  });

}

document.querySelector('#ListSec').addEventListener('click', LoadOrderList)

有什么想法吗?我已经尝试解决这个问题好几个小时了,但似乎无法弄清楚。

最佳答案

该错误消息表明 gRPC 是为 Node 安装的,而不是为 Electron 安装的。 Electron 有不同的二进制接口(interface),因此需要专门为 Electron 安装像 gRPC 这样的二进制模块。您通常只需运行 npm rebuild --runtime=electron --target=2.0.0 即可完成此操作(已修改以匹配您要使用的 Electron 版本)。

关于firebase - Electron 应用程序上的 Firebase 错误 : Failed to load gRPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52156883/

相关文章:

javascript - 向 PouchDB 文档添加附加附件

firebase - 您如何在水平扩展的应用程序上管理 websockets?

android - 如何使用/Android Studio/Kotlin 访问 Firebase Firestore 中的数组字段?

Firebase - 在互联网离线时上传图像

javascript - 如何在 linux 上安装 electron.js?

新 Firebase 托管上的 Wordpress

javascript - Cypress - 重新连接到 Chrome DevTools 协议(protocol)时出错

java - 如何返回 DocumentSnapShot 作为方法的结果?

firebase - 在Firebase Cloud Functions项目中生成Swagger文档

rest - 使用 REST 将数据保存到 Firebase