![](/img/trans.png)
[英]Error: could not load the default credentials — creds are fine, function dies
[英]Firebase "Could not load the default credentials." Only happens randomly 50% of the time it works fine, the other 50% it gives me this error
我收到“错误:无法加载默认凭据。浏览到https://cloud.google.com/docs/authentication/getting-started了解更多信息。” 在我的 firebase 函数中随机记录以下内容:
/* eslint-disable promise/no-nesting */
/*jshint esversion: 8 */
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const logging = require('@google-cloud/logging');
const stripe = require('stripe')(functions.config().stripe.token);
const currency = functions.config().stripe.currency || 'USD';
admin.initializeApp({
// credential: admin.credential.cert(serviceAccount),
// databaseURL: "https://removed.firebaseio.com"
});
const db = admin.firestore();
exports.CreateTime = functions.https.onRequest((req, res) => {
var userURL = req.body.uURL;
var userToken = req.body.utoken;
var reqTask = req.body.task1;
var userUID = req.body.uuid;
console.log(userURL)
var request = require("request");
var headers = {
"Authorization": "Bearer " + userToken,
"Content-Type": "application/json",
"Business": userURL
};
var dataString = { "taskId": reqTask };
var options = {
url: "https://api.plutio.com/v1.5/time-tracks",
method: "POST",
headers: headers,
body: dataString,
json: true
};
function callback(error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body);
console.log(body._id)
let timeid = body._id
db.collection("Users")
.doc(userUID)
.set({ currentTimeTrackID: timeid }, { merge: true })
.catch(e => console.log(e));
}
}
request(options, callback);
res.status(200).send("Complete")
});
//End Time API
这很奇怪,因为一切似乎都在正常工作
db.collection("Users")
.doc(userUID)
.set({ currentTimeTrackID: timeid }, { merge: true })
.catch(e => console.log(e));
}
似乎正在像它应该的那样拉当前时间轨道和 ID 并将其存储到数据库中。
然而,有时我会收到该错误,并且无论何时该错误发生在这里,它似乎都出于某种原因影响了我使用 currentTimeTrackID elswhere。
更奇怪的是有时会发生这种情况,有时会在 2-3 小时内完全正常工作。 并且它确实工作了好几个星期,这昨天随机出现,现在定期发生。
有任何想法吗?
似乎您正在使用空对象调用 initalizeApp :
admin.initializeApp({})
这似乎不对。 如果您没有任何要更改的初始化配置,并且您想使用 Cloud Functions 提供的默认服务帐户,则只需不传递任何参数:
admin.initializeApp()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.