持续观察Firebas中的变化

2024-09-28 21:28:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试创建一个服务器,它总是打开到Firebase数据库的连接,以监视更改,然后执行一个功能(在我的例子中,发送一个推送通知)。这个问题是关于如何保持开放的联系。在

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

我现在可以很容易地查询我的数据库以返回信息,但似乎没有任何关于如何持续监视更改的文档。在

我该怎么做?在


Tags: 文档https功能github服务器com信息数据库
1条回答
网友
1楼 · 发布于 2024-09-28 21:28:14

这个Python包装器似乎使用restapi。在这种情况下,不能使用核心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”事件,但你可能想调整你想观察的事件类型,以满足你的需要。在

相关问题 更多 >