【问题标题】:Firebase Pubsub Schedule Job can't run result is: "UNAUTHENTICATED"Firebase Pubsub Schedule Job 无法运行结果是:“未验证”
【发布时间】:2022-02-09 23:37:33
【问题描述】:

我正在尝试为我的应用程序实现一个排行榜,该排行榜应该每 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”赋予了这个角色

【问题讨论】:

标签: javascript node.js firebase-realtime-database google-cloud-platform google-cloud-functions


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2022-07-29
    • 2016-10-03
    • 1970-01-01
    • 2021-04-17
    • 2019-08-09
    • 1970-01-01
    相关资源
    最近更新 更多