firebase-admin - ошибка аутентификации: ошибка типа: URL не является конструктором - PullRequest
2 голосов
/ 16 апреля 2019

У меня есть API-интерфейс узла, который использует firebase-admin для обработки данных хранилища данных.Это не было проблемой несколько дней назад, и теперь это начало происходить.

Странно то, что я, кажется, получаю это только на своем производственном сервере, а не в локальной среде разработки (даже используя ту же базу данных)).

Я попытался повторно развернуть, перезапустить сервер, проверил конфигурацию базы данных и все, и ничего не получалось.

Это одна из более подробных ошибок:

Error: 14 UNAVAILABLE: Getting metadata from plugin failed with error: URL is not a constructor
    at Object.exports.createStatusError (/root/apps/api/src/node_modules/grpc/src/common.js:91:15)
    at Object.onReceiveStatus (/root/apps/api/src/node_modules/grpc/src/client_interceptors.js:1204:28)
    at InterceptingListener._callNext (/root/apps/api/src/node_modules/grpc/src/client_interceptors.js:568:42)
    at InterceptingListener.onReceiveStatus (/root/apps/api/src/node_modules/grpc/src/client_interceptors.js:618:8)
    at callback (/root/apps/api/src/node_modules/grpc/src/client_interceptors.js:845:24)

И это мой файл подключения:

import * as admin from 'firebase-admin'
import serviceAccount from './fbAdminKey'

admin.initializeApp({
    projectId: '<myProjectId>',
    credential: admin.credential.cert(serviceAccount),
    databaseURL: '<myDbURL>'
})

const db = admin.firestore()
const messaging = admin.messaging()
const auth = admin.auth()

export default { db, messaging, auth }

Он должен иметь возможность просто подключаться к базе данных и выполнять операции, у меня есть приложение, веб-приложение, и все они работают нормально, только узелПохоже, API работает странно.

Ответы [ 2 ]

2 голосов
/ 21 апреля 2019

Итак, после того, как я почти неделю бился головой, у меня были другие проблемы и все такое, я мог разобраться с помощью всех здесь присутствующих.

Проблема была в версии node.js

Я выполнял узел 8.4.0 локально и узел 6.x.x на производство . (firebase-admin 7.0.0)

Итак, я обновил его на производстве, используя nvm, и затем возникла другая проблема, связанная с версией grpc. У меня была установлена ​​более новая версия, и она требовала более старой версии.

Примечание

Если вы используете PM2, обязательно обновите его:

http://pm2.keymetrics.io/docs/usage/update-pm2/

После этого он снова начал работать, и все возвращается на круги своя.

0 голосов
/ 18 апреля 2019

Не точное решение, потому что оно не решает проблему с узлом 6.11.5.

Рабочий сервер по умолчанию работает на узле 6.11.5, и если вы хотите изменить версию среды выполнения на 8, обратитесь к этой статье.

https://firebase.google.com/docs/functions/manage-functions#set_runtime_options

Однако имейте в виду, что эта исполняемая версия в настоящее время находится в бета-версии, поэтому она может сломаться.

Я также заметил, что мне удалось избавиться от этой ошибки, с которой вы столкнулись, установив предыдущую версию firebase-admin (если быть точным, 6.2.0, на данный момент - версия 7.x.x является самой последней ).

Я боюсь, что одна из более новых версий firebase-admin сломала эту функцию в некоторых средах, и поэтому эта проблема не столь распространена.

...