ОШИБКА: @ firebase / database: FIREBASE ПРЕДУПРЕЖДЕНИЕ: предоставленные учетные данные для аутентификации для приложения с именем «[ПО УМОЛЧАНИЮ]» недействительны.Обычно это означает, что ваше приложение не было правильно инициализировано.Убедитесь, что свойство «credential», предоставленное initializeApp (), авторизовано для доступа к указанному «databaseURL» и относится к правильному проекту.
Эта ошибка только начала появляться в моем приложении после того, как я обновил firebase-tools до6.3.1.Работал отлично в течение нескольких месяцев.Что еще хуже ... кажется, что в вызове есть бесконечный цикл, который я не могу найти.
Согласно документации и видео Firebase, я правильно инициализировал скрипт.
- Удалил и повторно развернул функцию
- Изменены правила, чтобы разрешить все возможности чтения / записи
- Обновлены разрешения 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;
})
}
});
})