@@ -11,23 +11,23 @@ const firebaseApp = initializeApp({
11
11
12
12
function onDisconnectSimple ( ) {
13
13
// [START rtdb_ondisconnect_simple]
14
- const { getDatabase } = require ( "firebase/database" ) ;
14
+ const { getDatabase, ref , onDisconnect } = require ( "firebase/database" ) ;
15
15
16
16
const db = getDatabase ( firebaseApp ) ;
17
- const presenceRef = db . ref ( "disconnectmessage" ) ;
17
+ const presenceRef = ref ( db , "disconnectmessage" ) ;
18
18
// Write a string when this client loses connection
19
- presenceRef . onDisconnect ( ) . set ( "I disconnected!" ) ;
19
+ onDisconnect ( presenceRef ) . set ( "I disconnected!" ) ;
20
20
// [END rtdb_ondisconnect_simple]
21
21
}
22
22
23
23
function onDisconnectCallback ( ) {
24
- const { getDatabase } = require ( "firebase/database" ) ;
24
+ const { getDatabase, ref , onDisconnect } = require ( "firebase/database" ) ;
25
25
26
26
const db = getDatabase ( firebaseApp ) ;
27
- const presenceRef = db . ref ( "disconnectmessage" ) ;
27
+ const presenceRef = ref ( db , "disconnectmessage" ) ;
28
28
29
29
// [START rtdb_ondisconnect_callback]
30
- presenceRef . onDisconnect ( ) . remove ( ( err ) => {
30
+ onDisconnect ( presenceRef ) . remove ( ) . catch ( ( err ) => {
31
31
if ( err ) {
32
32
console . error ( "could not establish onDisconnect event" , err ) ;
33
33
}
@@ -36,13 +36,13 @@ function onDisconnectCallback() {
36
36
}
37
37
38
38
function onDisconnectCancel ( ) {
39
- const { getDatabase } = require ( "firebase/database" ) ;
39
+ const { getDatabase, ref , onDisconnect } = require ( "firebase/database" ) ;
40
40
41
41
const db = getDatabase ( firebaseApp ) ;
42
- const presenceRef = db . ref ( "disconnectmessage" ) ;
42
+ const presenceRef = ref ( db , "disconnectmessage" ) ;
43
43
44
44
// [START rtdb_ondisconnect_cancel]
45
- const onDisconnectRef = presenceRef . onDisconnect ( ) ;
45
+ const onDisconnectRef = onDisconnect ( presenceRef ) ;
46
46
onDisconnectRef . set ( "I disconnected" ) ;
47
47
// some time later when we change our minds
48
48
onDisconnectRef . cancel ( ) ;
@@ -51,11 +51,11 @@ function onDisconnectCancel() {
51
51
52
52
function detectConnectionState ( ) {
53
53
// [START rtdb_detect_connection_state]
54
- const { getDatabase } = require ( "firebase/database" ) ;
54
+ const { getDatabase, ref , onValue } = require ( "firebase/database" ) ;
55
55
56
56
const db = getDatabase ( firebaseApp ) ;
57
- const connectedRef = db . ref ( ".info/connected" ) ;
58
- connectedRef . on ( "value" , ( snap ) => {
57
+ const connectedRef = ref ( db , ".info/connected" ) ;
58
+ onValue ( connectedRef , ( snap ) => {
59
59
if ( snap . val ( ) === true ) {
60
60
console . log ( "connected" ) ;
61
61
} else {
@@ -67,21 +67,21 @@ function detectConnectionState() {
67
67
68
68
function setServerTimestamp ( ) {
69
69
// [START rtdb_set_server_timestamp]
70
- const { getDatabase, ServerValue } = require ( "firebase/database" ) ;
70
+ const { getDatabase, ref , onDisconnect , serverTimestamp } = require ( "firebase/database" ) ;
71
71
72
72
const db = getDatabase ( firebaseApp ) ;
73
- const userLastOnlineRef = db . ref ( "users/joe/lastOnline" ) ;
74
- userLastOnlineRef . onDisconnect ( ) . set ( ServerValue . TIMESTAMP ) ;
73
+ const userLastOnlineRef = ref ( db , "users/joe/lastOnline" ) ;
74
+ onDisconnect ( userLastOnlineRef ) . set ( serverTimestamp ( ) ) ;
75
75
// [END rtdb_set_server_timestamp]
76
76
}
77
77
78
78
function estimateClockSkew ( ) {
79
79
// [START rtdb_estimate_clock_skew]
80
- const { getDatabase } = require ( "firebase/database" ) ;
80
+ const { getDatabase, ref , onValue } = require ( "firebase/database" ) ;
81
81
82
82
const db = getDatabase ( firebaseApp ) ;
83
- const offsetRef = db . ref ( ".info/serverTimeOffset" ) ;
84
- offsetRef . on ( "value" , ( snap ) => {
83
+ const offsetRef = ref ( db , ".info/serverTimeOffset" ) ;
84
+ onValue ( offsetRef , ( snap ) => {
85
85
const offset = snap . val ( ) ;
86
86
const estimatedServerTimeMs = new Date ( ) . getTime ( ) + offset ;
87
87
} ) ;
@@ -90,31 +90,31 @@ function estimateClockSkew() {
90
90
91
91
function samplePresenceApp ( ) {
92
92
// [START rtdb_sample_presence_app]
93
- const { getDatabase, ServerValue } = require ( "firebase/database" ) ;
93
+ const { getDatabase, ref , onValue , push , onDisconnect , set , serverTimestamp } = require ( "firebase/database" ) ;
94
94
95
95
// Since I can connect from multiple devices or browser tabs, we store each connection instance separately
96
96
// any time that connectionsRef's value is null (i.e. has no children) I am offline
97
97
const db = getDatabase ( firebaseApp ) ;
98
- const myConnectionsRef = db . ref ( 'users/joe/connections' ) ;
98
+ const myConnectionsRef = ref ( db , 'users/joe/connections' ) ;
99
99
100
100
// stores the timestamp of my last disconnect (the last time I was seen online)
101
- const lastOnlineRef = db . ref ( 'users/joe/lastOnline' ) ;
101
+ const lastOnlineRef = ref ( db , 'users/joe/lastOnline' ) ;
102
102
103
- const connectedRef = db . ref ( '.info/connected' ) ;
104
- connectedRef . on ( 'value' , ( snap ) => {
103
+ const connectedRef = ref ( db , '.info/connected' ) ;
104
+ onValue ( connectedRef , ( snap ) => {
105
105
if ( snap . val ( ) === true ) {
106
106
// We're connected (or reconnected)! Do anything here that should happen only if online (or on reconnect)
107
- const con = myConnectionsRef . push ( ) ;
107
+ const con = push ( myConnectionsRef ) ;
108
108
109
109
// When I disconnect, remove this device
110
- con . onDisconnect ( ) . remove ( ) ;
110
+ onDisconnect ( con ) . remove ( ) ;
111
111
112
112
// Add this device to my connections list
113
113
// this value could contain info about the device or a timestamp too
114
- con . set ( true ) ;
114
+ set ( con , true ) ;
115
115
116
116
// When I disconnect, update the last time I was seen online
117
- lastOnlineRef . onDisconnect ( ) . set ( ServerValue . TIMESTAMP ) ;
117
+ onDisconnect ( lastOnlineRef ) . set ( serverTimestamp ( ) ) ;
118
118
}
119
119
} ) ;
120
120
// [END rtdb_sample_presence_app]
0 commit comments