Python 持续关注Firebase的变化
我正在尝试创建一个服务器,该服务器始终打开与Firebase数据库的连接,以监视更改,然后执行一项功能(在我的情况下,发送推送通知)。这个问题涉及如何保持开放连接 如果可能的话,我想在我的服务器上使用Python。这里似乎有一个很好的Firebase Python包装器: 我现在可以很容易地查询我的数据库以返回信息,但似乎没有任何关于如何持续监视更改的文档Python 持续关注Firebase的变化,python,firebase,Python,Firebase,我正在尝试创建一个服务器,该服务器始终打开与Firebase数据库的连接,以监视更改,然后执行一项功能(在我的情况下,发送推送通知)。这个问题涉及如何保持开放连接 如果可能的话,我想在我的服务器上使用Python。这里似乎有一个很好的Firebase Python包装器: 我现在可以很容易地查询我的数据库以返回信息,但似乎没有任何关于如何持续监视更改的文档 我该怎么做呢?这个Python包装器似乎使用了RESTAPI。在这种情况下,无法使用核心Firebase功能,该功能将观察员附加到接受实时回
我该怎么做呢?这个Python包装器似乎使用了RESTAPI。在这种情况下,无法使用核心Firebase功能,该功能将观察员附加到接受实时回调函数的数据 实际上,我现在正在编写一个类似的脚本。在我的例子中,我希望观察我们存储在Firebase数据库中的日志。经过一点研究之后,我决定使用nodejs将observer附加到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”事件,但您可能需要根据自己的需要调整要观察的事件类型。感谢您的详细回复,我非常感谢!所以我的逻辑将进入
函数(snap){…},
?是的,没错。nodejsapi与Firebase的javascript API相同,并且有惊人的文档记录。您可以在这里查看如何检索数据:答案很好!请注意。您可以使用来使用该数据,在这种情况下不必进行轮询。