Skip to content

Commit 94e698a

Browse files
committed
cache messaging token
1 parent 7f11025 commit 94e698a

1 file changed

Lines changed: 19 additions & 10 deletions

File tree

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
11
import messaging from "@react-native-firebase/messaging"
22

33
import { apiClient } from "../lib/api-fetch"
4+
import { kv } from "../lib/kv"
45
import { requestNotificationPermission } from "../lib/permission"
56
import { whoami } from "../store/user/getters"
67

8+
const FIREBASE_MESSAGING_TOKEN_STORAGE_KEY = "firebase_messaging_token"
9+
10+
async function saveMessagingToken() {
11+
const token = await messaging().getToken()
12+
const storedToken = await kv.get(FIREBASE_MESSAGING_TOKEN_STORAGE_KEY)
13+
if (storedToken === token) {
14+
return
15+
}
16+
await apiClient.messaging.$post({
17+
json: {
18+
token,
19+
channel: "mobile",
20+
},
21+
})
22+
kv.set(FIREBASE_MESSAGING_TOKEN_STORAGE_KEY, token)
23+
}
24+
725
export const initMessaging = () => {
826
const user = whoami()
927
if (!user) {
1028
return
1129
}
1230

13-
messaging()
14-
.getToken()
15-
.then((token) => {
16-
apiClient.messaging.$post({
17-
json: {
18-
token,
19-
channel: "mobile",
20-
},
21-
})
22-
})
31+
saveMessagingToken()
2332
requestNotificationPermission()
2433
}

0 commit comments

Comments
 (0)