subscribe / unsubscribe Topic

async subscribeNotififcation (query){
		const topic = query.type;
		const uid = query.uid;
		const market = query.market;
		const status = query.status

		const resultTokens= await db.collection(`notification`).doc(uid).get();
		const tokens = resultTokens.data().tokens;
		
			if(status==="true"){
				console.log('in true')
				const result = await messaging.subscribeToTopic(tokens, topic);
				if(result){
					console.log('adding to DB')
					await db.collection(`notification`).doc(uid).set({
						tokens:tokens,
						topics:admin.firestore.FieldValue.arrayUnion(`${topic}-${market}`)
					},{merge:true});
					return true;
				}	
			}else if(status==="false") {
				await messaging.unsubscribeFromTopic(tokens, topic);
				await db.collection(`notification`).doc(uid).set({
					topics:admin.firestore.FieldValue.arrayRemove(`${topic}-${market}`)
				},{merge:true});
				return true;
			}
	},

Last updated

Was this helpful?