Firebase Pubsub 计划作业无法 运行 结果是:"UNAUTHENTICATED"
Firebase Pubsub Schedule Job can't run result is: "UNAUTHENTICATED"
我正在尝试为我的应用实现一个排行榜,它应该每 24 小时重写一次,但我无法让它工作...工作甚至没有开始。
这是我找到的有关该功能的所有信息,但对我没有帮助。
https://firebase.google.com/docs/functions/schedule-functions
这是我的职能:
exports.leaderboardjob = functions.region('europe-west1').pubsub.schedule( '0 0 * * *').onRun(async (context) => {
await leaderboard();
console.log("job done");
return null;
});
async function leaderboard(){
const rdb = admin.firestore();
const ref = rdb.ref('users');
try {
await ref.orderByChild('xp').limitToLast(2).on('child_added', (snapshot) => { //test first with 2 results
console.log(snapshot.key);
});
} catch (error) {
console.log('error: ' + error.message);
}
return{
result: ok
}
}
我已经像所有其他功能一样将该功能移到了我的区域 europe-west1。
手动调用此函数 (leaderboardjob) 时返回的错误:
{"@type":"type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished", "jobName":"projects/censored/locations/europe-west1/jobs/firebase-schedule-leaderboardjob-europe-west1", "pubsubTopic":"projects/censored/topics/firebase-schedule-leaderboardjob-europe-west1", "status":"UNAUTHENTICATED", "targetType":"PUB_SUB"}
也许这是不可能的,如果不可能:谁能解释一下如何用函数实现这样的东西?
编辑:我忘了告诉我,我用一个新帐户“pubsub.subscriber”
赋予了该功能角色
我刚刚删除了整个函数并用新名称对其进行了测试。
我不知道为什么,但这奏效了...
您甚至不需要添加角色。一切正常。
我正在尝试为我的应用实现一个排行榜,它应该每 24 小时重写一次,但我无法让它工作...工作甚至没有开始。
这是我找到的有关该功能的所有信息,但对我没有帮助。 https://firebase.google.com/docs/functions/schedule-functions
这是我的职能:
exports.leaderboardjob = functions.region('europe-west1').pubsub.schedule( '0 0 * * *').onRun(async (context) => {
await leaderboard();
console.log("job done");
return null;
});
async function leaderboard(){
const rdb = admin.firestore();
const ref = rdb.ref('users');
try {
await ref.orderByChild('xp').limitToLast(2).on('child_added', (snapshot) => { //test first with 2 results
console.log(snapshot.key);
});
} catch (error) {
console.log('error: ' + error.message);
}
return{
result: ok
}
}
我已经像所有其他功能一样将该功能移到了我的区域 europe-west1。
手动调用此函数 (leaderboardjob) 时返回的错误:
{"@type":"type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished", "jobName":"projects/censored/locations/europe-west1/jobs/firebase-schedule-leaderboardjob-europe-west1", "pubsubTopic":"projects/censored/topics/firebase-schedule-leaderboardjob-europe-west1", "status":"UNAUTHENTICATED", "targetType":"PUB_SUB"}
也许这是不可能的,如果不可能:谁能解释一下如何用函数实现这样的东西?
编辑:我忘了告诉我,我用一个新帐户“pubsub.subscriber”
赋予了该功能角色我刚刚删除了整个函数并用新名称对其进行了测试。
我不知道为什么,但这奏效了...
您甚至不需要添加角色。一切正常。