(Javascript)Firebase错误,重新连接到internet后自动多次写入数据库

(Javascript)Firebase错误,重新连接到internet后自动多次写入数据库,javascript,jquery,firebase,firebase-realtime-database,Javascript,Jquery,Firebase,Firebase Realtime Database,我试图编写一些代码,当互联网可用时,以及当用户断开连接并再次连接时,允许我们将数据存储到数据库中。我尝试使用示例代码来帮助我: 主持人 提交 //初始化Firebase 变量配置={ apiKey:“AIzaSyD41Ig37DIfH-MoF04cO4MYbcTYKL_wErQ”, authDomain:“fypfirebase.firebaseapp.com”, 数据库URL:“https://fypfirebase.firebaseio.com", projectId:“fypfireb

我试图编写一些代码,当互联网可用时,以及当用户断开连接并再次连接时,允许我们将数据存储到数据库中。我尝试使用示例代码来帮助我:


主持人
提交
//初始化Firebase
变量配置={
apiKey:“AIzaSyD41Ig37DIfH-MoF04cO4MYbcTYKL_wErQ”,
authDomain:“fypfirebase.firebaseapp.com”,
数据库URL:“https://fypfirebase.firebaseio.com",
projectId:“fypfirebase”,
storageBucket:“fypfirebase.appspot.com”,
messagingSenderId:“787149952533”
};
firebase.initializeApp(配置);
//因为我可以从多个设备或浏览器选项卡进行连接,所以我们分别存储每个连接实例
//每当connectionsRef的值为null(即没有子项)时,我都处于脱机状态
var myConnectionsRef=firebase.database().ref('users/004/connections');
//存储上次断开连接的时间戳(上次看到我在线时)
var lastOnlineRef=firebase.database().ref('users/004/lastOnline');
var connectedRef=firebase.database().ref('.info/connected');
connectedRef.on('value',函数(snap){
$(“#单击按钮”)。在(“单击”上,函数writeUserData(){
if(snap.val()==真){
//我们已连接(或重新连接)!请在此处执行仅在联机(或重新连接)时才应执行的任何操作
var con=myConnectionsRef.push();
//将此设备添加到我的连接列表
//此值可能包含有关设备的信息或时间戳
con.set(真);
//当我断开连接时,请更新上次看到我在线的时间
lastOnlineRef.onDisconnect().set(firebase.database.ServerValue.TIMESTAMP);
}
});
});

在firebase on()流中创建onclick事件会给我带来麻烦,你能试着让这两个独立并使用变量跟踪在线状态吗


主持人
提交
//初始化Firebase
变量配置={
apiKey:“AIzaSyD41Ig37DIfH-MoF04cO4MYbcTYKL_wErQ”,
authDomain:“fypfirebase.firebaseapp.com”,
数据库URL:“https://fypfirebase.firebaseio.com",
projectId:“fypfirebase”,
storageBucket:“fypfirebase.appspot.com”,
messagingSenderId:“787149952533”
};
firebase.initializeApp(配置);
//因为我可以从多个设备或浏览器选项卡进行连接,所以我们分别存储每个连接实例
//每当connectionsRef的值为null(即没有子项)时,我都处于脱机状态
var myConnectionsRef=firebase.database().ref('users/004/connections');
//存储上次断开连接的时间戳(上次看到我在线时)
var lastOnlineRef=firebase.database().ref('users/004/lastOnline');
var connectedRef=firebase.database().ref('.info/connected');
var connectionStatus=false;
connectedRef.on('value',函数(snap){
connectionStatus=snap.val()
if(连接状态)
{
lastOnlineRef.onDisconnect().set(firebase.database.ServerValue.TIMESTAMP);
}
});
$(“#单击按钮”)。在(“单击”上,函数writeUserData(){
if(连接状态){
//我们已连接(或重新连接)!请在此处执行仅在联机(或重新连接)时才应执行的任何操作
var con=myConnectionsRef.push();
con.set(真);
}
});

在firebase on()流中创建onclick事件会给我带来麻烦,你能试着让这两个独立并使用变量跟踪在线状态吗


主持人
提交
//初始化Firebase
变量配置={
apiKey:“AIzaSyD41Ig37DIfH-MoF04cO4MYbcTYKL_wErQ”,
authDomain:“fypfirebase.firebaseapp.com”,
数据库URL:“https://fypfirebase.firebaseio.com",
projectId:“fypfirebase”,
storageBucket:“fypfirebase.appspot.com”,
messagingSenderId:“787149952533”
};
firebase.initializeApp(配置);
//因为我可以从多个设备或浏览器选项卡进行连接,所以我们分别存储每个连接实例
//每当connectionsRef的值为null(即没有子项)时,我都处于脱机状态
var myConnectionsRef=firebase.database().ref('users/004/connections');
//存储上次断开连接的时间戳(上次看到我在线时)
var lastOnlineRef=firebase.database().ref('users/004/lastOnline');
var connectedRef=firebase.database().ref('.info/connected');
var connectionStatus=false;
connectedRef.on('value',函数(snap){
connectionStatus=snap.val()
if(连接状态)
{
lastOnlineRef.onDisconnect().set(firebase.database.ServerValue.TIMESTAMP);
}
});
$(“#单击按钮”)。在(“单击”上,函数writeUserData(){
if(连接状态){
//我们已连接(或重新连接)!请在此处执行仅在联机(或重新连接)时才应执行的任何操作
var con=myConnectionsRef.push();
con.set(真);
}
});