В настоящее время я пытаюсь развернуть мои облачные функции в 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
, для продолжения необходимо создать платежную учетную запись. Это удерживает меня от развертывания облачных функций. Можно ли использовать облачные функции с платежным аккаунтом?