【问题标题】:Continuously watch for changes in Firebase持续关注 Firebase 的变化
【发布时间】:2016-04-07 10:39:18
【问题描述】:

我正在尝试创建一个始终与我的 Firebase 数据库建立连接的服务器,以监视更改,然后执行一项功能(在我的情况下,发送推送通知)。这个问题是关于如何保持一个开放的连接。

如果可能,我想在我的服务器上使用 Python。似乎这里有一个很好的 Firebase Python 包装器:https://github.com/ozgur/python-firebase

我现在可以轻松地查询我的数据库以返回信息,但似乎没有任何关于如何持续观察变化的文档。

我该怎么做?

【问题讨论】:

    标签: python firebase


    【解决方案1】:

    这个 Python 包装器似乎使用了 REST API。在这种情况下,不能使用将观察者附加到接受实时回调函数的数据的核心 Firebase 功能。

    实际上,我现在正在编写一个类似的脚本。就我而言,我想观察我们存储在 Firebase 数据库中的日志。经过一些研究后,我决定使用 nodejs 将观察者附加到 Firebase 数据,并将任何新的即将到来的数据写入我以后可以处理的外部文件(是的,我也更喜欢 Python,所以这就是我只使用的原因nodejs 从数据库中获取数据)。

    这是我脚本中的一个 sn-p:

    var ref = new Firebase("https://example.firebaseio.com");
    var logsRef = new Firebase("https://example.firebaseio.com/logs");
    
    var authToFirebase = function(loggedCallback) {
        ref.authWithPassword({        
            email: "user@example.com",
            password : "password"
        }, function(error, authData) {
            if (error) {
                console.log("Login Failed!", error);
            } else {
                console.log("Authenticated successfully with uid " + authData.uid);
                loggedCallback();
            }
        })
    }
    
    authToFirebase(function() {
        //attaching child_added observer to logs
        logsRef.on("child_added", function(snap) {                
        }, function(errorObject) {
            console.log("The read failed: " + errorObject);
        });
    });
    

    如您所见,它非常简单。请注意,首先我登录到现有帐户,因为未经授权的用户无法通过 Firebase 规则机制访问我要观察的数据。

    我在这里使用“child_added”事件,但您可能想根据需要调整要观察的事件类型。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 2015-12-30
    • 2021-08-10
    相关资源
    最近更新 更多