Невозможно развернуть облачные функции в Firebase. В запросе отсутствуют необходимые учетные данные для аутентификации - PullRequest
0 голосов
/ 22 февраля 2020

В настоящее время я пытаюсь развернуть мои облачные функции в Firebase с firebase deploy --only functions, но это не похоже на работу, оно никогда не завершает развертывание. Я попытался отладить развертывание с помощью команды firebase deploy --only functions --debug, это распечатывает все запросы с URL, которые приводят к сообщениям об ошибках. Всякий раз, когда я нажимаю один из URL-адресов запросов, он выдает мне эту ошибку:

{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
} 

Некоторые другие URL-адреса дают мне эту ошибку:

{
  "error": {
    "code": 401,
    "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "status": "UNAUTHENTICATED"
  }
}

Я не могу найти что-нибудь полезное онлайн о том, как это исправить. Статьи, которые я нашел, мне не помогли.

Это мой index.js файл, в котором мои облачные функции:

const functions = require('firebase-functions');
const {firestore, auth} = require('./src/admin');

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
exports.helloWorld = functions.https.onRequest((request, response) => {
 response.send("Hello from Firebase!");
});

Это мой admin.js файл, в котором я определяю serviceAccountKey и такие:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const serviceAccount = require('../serviceAccountKey.json');

const app = admin.apps.length
  ? admin.app()
  : admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: functions.config().database.url || process.env.FIREBASE_CONFIG.databaseURL, // default firebase var
    storageBucket: functions.config().storage.bucket || process.env.FIREBASE_CONFIG.storageBucket // default firebase var
  });

module.exports = {
  app,
  firestore: app.firestore(),
  db: app.database(),
  storage: app.storage(),
  auth: app.auth()
};

Я использовал этот точный код ранее в другом проекте, поэтому я предполагаю, что это проблема Firebase, а не мой код. В конце я ожидаю, что мои облачные функции будут развернуты путем вызова команды firebase deploy --only functions без каких-либо ошибок аутентификации. Может кто-нибудь, пожалуйста, скажите мне, что я делаю не так здесь?

ОБНОВЛЕНИЕ 22-2-2020 12:44 PM: Я попытался переустановить и перенастроить firebase-tools. После выполнения этой команды и повторного выполнения команды она выдала мне следующую ошибку:

There was an issue deploying your functions. Verify that your project has a Google App Engine instance setup at https://console.cloud.google.com/appengine and try again. If this
issue persists, please contact support.
!  functions: Upload Error: HTTP Error: 503, The service is currently unavailable.

Error: HTTP Error: 503, The service is currently unavailable.

URL-адрес ведет меня на страницу, где вы можете настроить свой App Engine. Поскольку я уже настроил это, он говорит: «Ваше приложение App Engine создано». Однако всякий раз, когда я снова нажимаю кнопку Get Started, для продолжения необходимо создать платежную учетную запись. Это удерживает меня от развертывания облачных функций. Можно ли использовать облачные функции с платежным аккаунтом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...