持续关注Firebase的变化

时间:2016-04-07 02:22:20

标签: python firebase

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

如果可能的话,我想将Python用于我的服务器。看起来这里有一个很好的Firebase包装器:https://github.com/ozgur/python-firebase

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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

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

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

以下是我脚本的摘录:

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”活动,但您可能想要根据需要调整您想要观察的活动类型。