大佬教程收集整理的这篇文章主要介绍了node.js – firebase计算在线用户并在全局计数器中更新,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
export const countOnlineUser = functions.database .ref('/UserStatus/{uiD}') .onWrite((change,context) => { var collectionRef = change.after.ref.parent; var countRef = collectionRef.child('online_users'); let increment = 0; if (change.after.exists() && !change.before.exists()) { increment = 1; } else if (!change.after.exists() && change.before.exists()) { increment = -1; } else { return null; } // Return the promise from countRef.transaction() so our function // waits for this async event to complete before it exits. return countRef.transaction((current) => { console.log(current) if (current == null) { return 0; } else { return (current || 0) + increment; } }).then(() => { return console.log('Counter updated.'); }); });
constructor() { firebase.auth().onAuthStateChanged((user) => { if (user) { const { uid,phonenumber } = firebase.auth().currentUser._user UserStore.setUID(uid) this.setListenConnection() } }) setListenConnection = async () => { thiS.UserStatusDatabaseRef = firebaseRef(`UserStatus/${UserStore.user.uiD}`) firebaseRef('.info/connected').on('value',async connected => { if (connected.val() === falsE) { return } await firebaseRef(`UserStatus/${UserStore.user.uiD}`).onDisconnect().remove() thiS.UserStatusDatabaseRef.set({ state: 'online',last_changed: firebase.firestore.FieldValue.servertimestamp() },{ merge: true }) }) }
我对这些功能有一些问题
有时online_users是负面的,我想阻止它.
有时我进入交易当前是空的.
我该如何解决?
至于云功能,请查看Writing and Viewing Logs.如果可行,这将是API.
以上是大佬教程为你收集整理的node.js – firebase计算在线用户并在全局计数器中更新全部内容,希望文章能够帮你解决node.js – firebase计算在线用户并在全局计数器中更新所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。