Аутентифицироваться в Firebase из Heroku Ошибка: не удается найти модуль - PullRequest
1 голос
/ 26 мая 2020

Я разработал приложение и развернул его на Heroku. Внутренний процесс должен запускаться каждый час и получать sh некоторых данных в базе данных Firebase. Для этого я следую руководству Firebase Admin SDK, чтобы предоставить доступ к серверу. (https://firebase.google.com/docs/database/admin/start)

Локально все работает нормально, но когда я открываю приложение на Heroku, я получаю «Ошибка приложения».

Глядя на журналы приложений, кажется, что проблема связана с модулем 'serviceAccountKey. json' , , хранящимся в node_modules.

Я уже читал этот пост Где или что serviceAccountKey. json - это образец node js базы данных реального времени firebase , и мне кажется, что я все сделал нормально, но я уверен, что мне что-то не хватает ... но что?

Может ли кто-нибудь помочь мне разобраться?

Инструкция Firebase

var admin = require("firebase-admin");

var serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://sunset-3a5bb.firebaseio.com"
});

Мой код

var admin = require('firebase-admin');
var serviceAccount = require("serviceAccountKey.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "https://sunset-3a5bb.firebaseio.com"
});

Журналы приложений Heroku

2020-05-27T18:10:20.716666+00:00 app[scheduler.8534]:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
2020-05-27T18:10:20.716666+00:00 app[scheduler.8534]:     at Module.load (internal/modules/cjs/loader.js:986:32)
2020-05-27T18:10:20.716666+00:00 app[scheduler.8534]:     at Function.Module._load (internal/modules/cjs/loader.js:879:14)
2020-05-27T18:10:20.716667+00:00 app[scheduler.8534]:     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
2020-05-27T18:10:20.716667+00:00 app[scheduler.8534]:   code: 'MODULE_NOT_FOUND',
2020-05-27T18:10:20.716668+00:00 app[scheduler.8534]:   requireStack: [ '/app/server.js' ]
2020-05-27T18:10:20.716668+00:00 app[scheduler.8534]: }
2020-05-27T18:10:20.778079+00:00 heroku[scheduler.8534]: Process exited with status 1
2020-05-27T18:10:20.824064+00:00 heroku[scheduler.8534]: State changed from up to complete
2020-05-27T18:10:55.972034+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-27T18:11:01.422903+00:00 heroku[web.1]: Starting process with command `npm start`
2020-05-27T18:11:05.047578+00:00 app[web.1]: 
2020-05-27T18:11:05.047603+00:00 app[web.1]: > sunset-website@1.0.0 start /app
2020-05-27T18:11:05.047603+00:00 app[web.1]: > node server.js
2020-05-27T18:11:05.047604+00:00 app[web.1]: 
2020-05-27T18:11:06.071677+00:00 app[web.1]: 23363
2020-05-27T18:11:06.851354+00:00 app[web.1]: internal/modules/cjs/loader.js:969
2020-05-27T18:11:06.851370+00:00 app[web.1]:   throw err;
2020-05-27T18:11:06.851371+00:00 app[web.1]:   ^
2020-05-27T18:11:06.851371+00:00 app[web.1]: 
2020-05-27T18:11:06.851372+00:00 app[web.1]: Error: Cannot find module 'sunset-3a5bb-firebase-adminsdk-888zm-9dd45c565b.json'
2020-05-27T18:11:06.851372+00:00 app[web.1]: Require stack:
2020-05-27T18:11:06.851373+00:00 app[web.1]: - /app/server.js
2020-05-27T18:11:06.851374+00:00 app[web.1]:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
2020-05-27T18:11:06.851374+00:00 app[web.1]:     at Function.Module._load (internal/modules/cjs/loader.js:842:27)
2020-05-27T18:11:06.851375+00:00 app[web.1]:     at Module.require (internal/modules/cjs/loader.js:1026:19)
2020-05-27T18:11:06.851375+00:00 app[web.1]:     at require (internal/modules/cjs/helpers.js:72:18)
2020-05-27T18:11:06.851376+00:00 app[web.1]:     at Object.<anonymous> (/app/server.js:32:22)
2020-05-27T18:11:06.851376+00:00 app[web.1]:     at Module._compile (internal/modules/cjs/loader.js:1138:30)
2020-05-27T18:11:06.851376+00:00 app[web.1]:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
2020-05-27T18:11:06.851377+00:00 app[web.1]:     at Module.load (internal/modules/cjs/loader.js:986:32)
2020-05-27T18:11:06.851377+00:00 app[web.1]:     at Function.Module._load (internal/modules/cjs/loader.js:879:14)
2020-05-27T18:11:06.851378+00:00 app[web.1]:     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
2020-05-27T18:11:06.851378+00:00 app[web.1]:   code: 'MODULE_NOT_FOUND',
2020-05-27T18:11:06.851378+00:00 app[web.1]:   requireStack: [ '/app/server.js' ]
2020-05-27T18:11:06.851379+00:00 app[web.1]: }
2020-05-27T18:11:06.859304+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-05-27T18:11:06.859606+00:00 app[web.1]: npm ERR! errno 1
2020-05-27T18:11:06.860754+00:00 app[web.1]: npm ERR! sunset-website@1.0.0 start: `node server.js`
2020-05-27T18:11:06.860884+00:00 app[web.1]: npm ERR! Exit status 1
2020-05-27T18:11:06.861074+00:00 app[web.1]: npm ERR! 
2020-05-27T18:11:06.861207+00:00 app[web.1]: npm ERR! Failed at the sunset-website@1.0.0 start script.
2020-05-27T18:11:06.861336+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2020-05-27T18:11:06.873419+00:00 app[web.1]: 
2020-05-27T18:11:06.873580+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2020-05-27T18:11:06.873754+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2020-05-27T18_11_06_863Z-debug.log
2020-05-27T18:11:06.948847+00:00 heroku[web.1]: Process exited with status 1
2020-05-27T18:11:06.985499+00:00 heroku[web.1]: State changed from starting to crashed
2020-05-27T18:23:38.792488+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=london-sunset.herokuapp.com request_id=bf2bafdc-d5b0-4b1f-a9c8-7b7bfa203cc1 fwd="176.251.241.40" dyno= connect= service= status=503 bytes= protocol=https
2020-05-27T18:23:39.388980+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=london-sunset.herokuapp.com request_id=0b301253-1fee-456c-af19-10ef8fb122c3 fwd="176.251.241.40" dyno= connect= service= status=503 bytes= protocol=https

Спасибо

1 Ответ

0 голосов
/ 03 августа 2020

Откройте файл package. json и проверьте, добавлена ​​ли firebase в качестве зависимости. Если нет, установите его и повторно разверните на Heroku.

...