如何在Firebase Shell测试Python编写的Firebase V2调度函数?调用无输出排查
问题解决
问题重现
创建的Cloud Functions调度函数代码:
@scheduler_fn.on_schedule(schedule='1 * * * *') def logSomething(event: scheduler_fn.ScheduledEvent) -> None: print("Reached")
执行流程:
% firebase emulators:start % firebase functions:shell firebase > logSomething()
仅返回'Successfully invoked function.',未看到预期的"Reached"打印,且Pub/Sub模拟器已正常连接:
i functions: Connected to running pubsub emulator at 127.0.0.1:8085, calls to this service will affect the emulator
原因与解决方法
日志输出位置不对
调度函数内的print内容不会直接输出到Functions Shell的交互窗口,而是会输出到启动firebase emulators:start的终端窗口中,切换到该窗口即可查看"Reached"的打印内容。改用Firebase日志工具(更可靠)
将print替换为官方日志模块,日志会统一输出到模拟器控制台,更容易追踪:import logging @scheduler_fn.on_schedule(schedule='1 * * * *') def logSomething(event: scheduler_fn.ScheduledEvent) -> None: logging.info("Reached")Shell调用时显式捕获输出
在Functions Shell中调用时,通过链式调用确认执行状态:logSomething().then(() => console.log("函数执行完成,可去模拟器终端查看日志"))
内容的提问来源于stack exchange,提问作者Deland
相关产品推荐
相关产品推荐

