-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathindex.cjs
60 lines (53 loc) · 1.42 KB
/
index.cjs
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const admin = require('firebase-admin')
module.exports = class FirestoreDBContextStore {
constructor(serviceAccount, collectionName) {
if (!serviceAccount) {
throw new Error('Need a valid serviceAccount.json')
}
this.serviceAccount = serviceAccount
this.collectionName = collectionName || 'installedApps'
admin.initializeApp({
credential: admin.credential.cert(this.serviceAccount),
})
this.db = admin.firestore()
this.installedApps = this.db.collection(this.collectionName)
}
get(installedAppId) {
return new Promise((resolve, reject) => {
this.installedApps
.doc(installedAppId)
.get()
.then(snapshot => {
resolve(snapshot.data())
})
.catch(reject)
})
}
put(parameters) {
return new Promise((resolve, reject) => {
this.installedApps
.doc(parameters.installedAppId)
.set(parameters, {merge: true})
.then(resolve)
.catch(reject)
})
}
update(installedAppId, parameters) {
return new Promise((resolve, reject) => {
this.installedApps
.doc(installedAppId)
.update(parameters, {merge: true})
.then(resolve)
.catch(reject)
})
}
delete(installedAppId) {
return new Promise((resolve, reject) => {
this.installedApps
.doc(installedAppId)
.delete()
.then(resolve)
.catch(reject)
})
}
}