Ошибка с Firebase в приложении Electron: не удалось загрузить gRPC - PullRequest
0 голосов
/ 04 сентября 2018

Я создаю приложение 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)

Есть идеи? Я пытался решить эту проблему часами, но никак не мог понять это.

1 Ответ

0 голосов
/ 04 сентября 2018

Это сообщение об ошибке указывает, что gRPC был установлен для узла, а не для электрона. Electron имеет другой двоичный интерфейс, поэтому двоичные модули, такие как gRPC, должны быть установлены специально для Electron. Обычно вы можете сделать это, просто запустив npm rebuild --runtime=electron --target=2.0.0 (измененный в соответствии с версией Electron, которую вы хотите использовать).

...