Ошибка аутентификации Firebase-функций после обновления Firebase-tools - PullRequest
0 голосов
/ 13 февраля 2019

ОШИБКА: @ firebase / database: FIREBASE ПРЕДУПРЕЖДЕНИЕ: предоставленные учетные данные для аутентификации для приложения с именем «[ПО УМОЛЧАНИЮ]» недействительны.Обычно это означает, что ваше приложение не было правильно инициализировано.Убедитесь, что свойство «credential», предоставленное initializeApp (), авторизовано для доступа к указанному «databaseURL» и относится к правильному проекту.

Эта ошибка только начала появляться в моем приложении после того, как я обновил firebase-tools до6.3.1.Работал отлично в течение нескольких месяцев.Что еще хуже ... кажется, что в вызове есть бесконечный цикл, который я не могу найти.

Согласно документации и видео Firebase, я правильно инициализировал скрипт.

  1. Удалил и повторно развернул функцию
  2. Изменены правила, чтобы разрешить все возможности чтения / записи
  3. Обновлены разрешения IAM в консоли разработчика Google (хотя это кажется мне чуждым, поскольку я по своей природе являюсь разработчиком IOS)
 const admin = require('firebase-admin');
 const stripe = require("stripe")("sk_***********");

 stripe.setApiVersion('2018-09-24');

 admin.initializeApp();

 exports.chargeCustomer = functions.https.onRequest((req, res) => {

 const _amount = req.query.amount;
 const _id = req.query.customerId;
 const _uid = req.query.uid;

 console.log('Charge customer started');

 stripe.charges.create({
     amount: _amount,
     customer: _id,
     currency: "usd"
 }, (err, charge) => {
     if (err !== null) {
         console.log("Error charging customer: ", err);
         res.status(500).send(err);
         return;
     } else {
         console.log('Stripe returned. Starting Firebase');

-below is where things go haywire-

         admin.database().ref(`/users/${_uid}/balance`)
             .once("value", (snap) => { 

                 admin.database().ref(`/users/${_uid}    /`).update({"some:data"}, (err) => {
                     if (err !== null) {

                         res.status(301).send(err.message);
                         return;
                     } else {
                         res.status(200).send(true);
                         return;
                     }
                 })
               }
             }).catch((err) => {
                 console.log("error getting balance: " + err);
                 res.status(301).send(err);
                 return;
             })
     }
 });
})


1 Ответ

0 голосов
/ 21 февраля 2019

Решено:

  1. В вашем проекте перейдите в Настройки проекта> Учетные записи служб> FirebaseAdminSdk.Скопируйте код для инициализации.
  2. Создайте новый ключ для загрузки и поместите в папку вашего проекта.
  3. Обновите var serviceAccount = require ("path / to / serviceAccountKey.json")
  4. Развертывание
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...