-
Notifications
You must be signed in to change notification settings - Fork 1
/
notificationHandler.js
39 lines (33 loc) · 1.47 KB
/
notificationHandler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import {Segment, Permissions, Notifications } from 'expo';
import {AsyncStorgae, Alert} from 'react-native';
import firebase from './firebase.js';
registerForNotifications = async function() {
var currUser = firebase.auth().currentUser;
console.log('Got current user');
firebase.database().ref('users').child(currUser.uid).child('pushToken').once('value', async (snapshot) => {
if (snapshot.val() == null) {
const { status: existingStatus } = await Permissions.getAsync(Permissions.NOTIFICATIONS);
let finalStatus = existingStatus;
console.log(existingStatus);
if (existingStatus !== 'granted') {
const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
finalStatus = status;
}
if (finalStatus !== 'granted') return;
let pushToken = await Notifications.getExpoPushTokenAsync();
firebase.database().ref('users').child(currUser.uid).child('pushToken').set(pushToken);
} else {
//console.log("Already stored push token");
}
}).catch(function(error) {
console.log(error.message);
})
}
handleNotifications = (notification) => {
console.log(notification);
let notData = notification['data'];
let title = notData['title'];
let body = notData['body'];
if (notification['origin'] === 'received') Alert.alert(title, body);
};
export {registerForNotifications, handleNotifications};