首页 > 解决方案 > Python Firebase Admin 监听器每小时自动触发一次

问题描述

我注意到我的 Firebase 管理事件侦听器每小时都会触发一次,即使我的数据库没有更改。我整理了一个小型测试程序进行验证,发现这些更新每小时自动发生,大约在设置初始侦听器后 60 分钟。

这是故意的吗?如果是这样,我该如何禁用此行为?

这是测试程序(我删除了一些*敏感值*):

# Firebase modules
import os
import datetime
import firebase_admin
from firebase_admin import db
from firebase_admin import credentials

# Init Firebase.
dir_path = os.path.dirname(os.path.realpath(__file__))
cred = credentials.Certificate(dir_path + '/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
    'databaseURL': *DB_URL*
})


def db(event):
    print('Firebase event detected: ')
    print('Path: ' + event.path)
    print('Data: ' + event.data)
    print('Event type: ' + event.event_type)

    now = datetime.datetime.now()
    human_timestamp = '{y}-{mon}-{d} {h}:{min}:{s}'.format(
        y=now.year,
        mon=now.month,
        d=now.day,
        h=now.hour,
        min=now.minute,
        s=now.second
    )

    print(human_timestamp)


if __name__ == "__main__":
    loc_path = *LOC_PATH*
    listener = firebase_admin.db.reference(loc_path).listen(db)

    try: 
        while True:
            pass
    except KeyboardInterrupt:
        listener.close()

我运行了一个小时,看到了以下输出:

Firebase event detected: 
Path: /
Data: test
Type: put
2019-2-3 9:11:58
Firebase event detected: 
Path: /
Data: test
Type: put
2019-2-3 10:12:4

标签: pythonfirebasefirebase-realtime-databasefirebase-admin

解决方案


推荐阅读