我目前正在使用一个Firestore后端。我想要实现的是,在窗口关闭时更新Firestore上的文档。我知道,当窗口关闭时,我们可以使用Navigator.sendBeacon()调用API,因为它接收url和data (可选)作为它的参数。但是,我想要执行一个函数,例如,在Firestore中,有一个名为updateDoc的函数。我有办法做到这一点吗?
或者我还能用别的方法吗?
发布于 2022-10-03 14:02:56
根据这个文档:
有一个函数
firebase.database.onDisconnect。当客户端断开与数据库服务器的连接时,onDisconnect类允许您写入或清除数据。无论您的客户端是否干净地断开连接,都会发生这些更新,因此您可以依赖它们来清理数据,即使某个连接被删除或客户端崩溃。 更新 方法update ( values : Object , onComplete ? : ( a : Error | null ) => any ) : Promise < any >当客户端断开连接(由于关闭浏览器、导航到新页或网络问题)时,在此位置写入多个值。 值参数包含将一起写入数据库的多个属性值对。每个子属性可以是一个简单的属性(例如,"name"),也可以是从当前位置到要更新的数据的相对路径(例如"name/first")。 与set()方法不同,update()可以用于选择性地更新当前位置上引用的属性(而不是替换当前位置的所有子属性)。 请参阅使用连接版本的更新()的更多示例。 var ref =firebase.database().ref(“用户/ada”);ref.update({ onlineState: true,status:“I‘s online.”});ref.onDisconnect().update({ onlineState: false,status:“I’s脱机”);
https://stackoverflow.com/questions/73905988
复制相似问题