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”

赋予了该功能角色

我刚刚删除了整个函数并用新名称对其进行了测试。

我不知道为什么,但这奏效了...

您甚至不需要添加角色。一切正常。