为什么firestore在firebase实时数据库更新时不升级



我正在构建一个聊天应用程序使用firebase在我的一个vuejs应用程序…在这个系统中,我想显示活跃/不活跃用户的状态…因此,我使用了firebase https://firebase.google.com/docs/firestore/solutions/presence的解决方案,可以在这里找到…到目前为止,我尝试了这个。Realtime数据库更新,cloud firestore未更新。请帮帮我,我会很有帮助的。

let user = this.profile.id;
let base = database.ref("/online_users/" + user);
var store = db.doc('/status/' + user);
var isOfflineForFirestore = {
state: 'offline',
user_id: user,
};
var isOnlineForFirestore = {
state: 'online',
user_id: user,
};
var isOfflineForDatabase = {
state: 'offline',
user_id: user,
};

var isOnlineForDatabase = {
state: 'online',
user_id: user,
};

database.ref('/online_users/'+this.profile.id).on('value', function(snapshot) {
if (snapshot.val().state == 'offline') {
// Instead of simply returning, we'll also set Firestore's state
// to 'offline'. This ensures that our Firestore cache is aware
// of the switch to 'offline.'
store.set(isOfflineForFirestore);
console.log(snapshot.val());
}

base.onDisconnect().set(isOfflineForDatabase).then(function() {
store.set(isOnlineForFirestore);
base.set(isOnlineForDatabase);
});
});

如何初始化RTDB和Firestore是不同的。它没有完全包含在您的代码中,但您应该注意如何创建引用。与在RTDB上使用firebase.database().ref()不同,在Firestore上,您使用firebase.firestore().doc()创建文档引用。

试试这个:

var store = firebase.firestore().doc('/status/' + user);

最新更新