javascript - 在 Firebase 中处理用户的在线和离线状态

标签 javascript firebase firebase-realtime-database google-cloud-functions

我想在我的网络应用程序中处理在线和离线状态。 这样用户就可以看到谁在线谁不在线。

我发现这个很棒的教程解释得很好,但我被卡住了。

https://blog.campvanilla.com/firebase-firestore-guide-how-to-user-presence-online-offline-basics-66dc27f67802

我觉得 cloud-functions 有问题,因为我在那里遇到了错误。

此外,该教程是从 2017 年 12 月 15 日开始的,我知道 cloud-functions 已更新,但我不知道如何更新代码。

文档链接:https://firebase.google.com/docs/functions/beta-v1-diff

有人可以看一下教程,也许可以帮助我吗?

云功能:

 const functions = require('firebase-functions');
 const Firestore = require('@google-cloud/firestore');
 const firestore = new Firestore();

 exports.onUserStatusChanged = functions.database
  .ref('/status/{userId}') // Reference to the Firebase RealTime database key
  .onUpdate((event, context) => {

    const usersRef = firestore.collection('/users'); // Create a reference to 
    the Firestore Collection

    return event.before.ref.once('value')
      .then(statusSnapshot => snapShot.val()) // Get latest value from  the Firebase Realtime database
      .then(status => {
        // check if the value is 'offline'
        if (status === 'offline') {
          // Set the Firestore's document's online value to false
          usersRef
            .doc(event.params.userId)
            .set({
              online: false
            }, {
              merge: true
            });
        }
        return
      })
  });

最佳答案

官方 Firestore 文档 (Build presence in Cloud Firestore) 中有更新的教程,解释了如何设置 Firestore、实时数据库和 Cloud Functions。

关于javascript - 在 Firebase 中处理用户的在线和离线状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51768240/

相关文章:

javascript - 在 Javascript 中使用带引号的字符串内的变量?

php - 在 GET ajax 调用中传递 HEX 颜色

java - Firebase:没有要序列化的属性 - Android

java - 如何为手机中安装的 Whatsapp、Facebook 或其他应用程序创建共享按钮

java - 根据 ID 读取实际的 Firebase 记录

swift - firebase json反序列化swift

firebase - flutter/firebase 数据库中的一个简单查询

javascript - 如何使用 Ionic 从外部 JSON 获取数据?

javascript - 这是否适合我的循环?

javascript - 展平 Angular2 中的可观察数组