gpt4 book ai didi

Firebase 监听特定领域的变化

转载 作者:行者123 更新时间:2023-12-02 03:43:17 27 4
gpt4 key购买 nike

我正在使用 firebase 开发实时虚拟聊天室。我想知道是否可以在 firebase db 中监听特定字段的更新。例如,如果数据的结构如下:

{channel_name: test-app,
{id: unique_id_generated_automatically_by_firebase,
{user_id: some_id,
position: {
current: {x:x,y:y},
start: {x:x,y:y},
end: {x:x,y:y}
}
}
{id: unique_id_generated_automatically_by_firebase,
{user_id: some_id,
position: {
current: {x:x,y:y},
start: {x:x,y:y},
end: {x:x,y:y}
}
}
}

目前我可以像那样监听数据库中的任何变化

//reference to firebase db
var room = new Firebase("https://test-app.firebaseio.com/");
room.on("child_changed", function(snapshot) {
//do something here;
});

我正在寻找一种方法来监听字段 position.start 和 position.end 的变化,但忽略 position.current(这些是唯一会更新的字段)。只有当用户登录时才会需要当前位置,以获取当前在房间中的所有用户的当前位置。之后,位置将根据起始值和结束值在客户端计算机上进行动画处理。我还想通过不向所有连接的客户端发出当前位置的更改来节省数据传输,但在请求时具有当前状态。非常感谢任何帮助和建议。

最佳答案

您可以为您感兴趣的每个字段绑定(bind)一个 .on("value") 事件。

var room = new Firebase("https://test-app.firebaseio.com/" + roomID);
room.child("position/start").on("value", onChange);
room.child("position/end").on("value", onChange);
function onChange(snapshot) {
if (snapshot.name() == "start") {
// position.start changed to snapshot.val()
} else if (snapshot.name() == "end") {
// position.end changed to snapshot.val()
}
}

关于Firebase 监听特定领域的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com