diff options
| author | tomsmeding <tom.smeding@gmail.com> | 2017-05-24 21:04:16 +0200 | 
|---|---|---|
| committer | tomsmeding <tom.smeding@gmail.com> | 2017-05-24 21:04:16 +0200 | 
| commit | 096270b1d0ec09f0dbcfe8653957154a07a90de4 (patch) | |
| tree | bbfaa58f0c2c83e9163bc9be01782f46bd5228a4 | |
| parent | 438254db34608808f7d521fe871e21393542c556 (diff) | |
server: Fix firebase notifications
| -rwxr-xr-x | firebase-io/firebase-io.js | 13 | ||||
| -rw-r--r-- | firebase.c | 8 | 
2 files changed, 15 insertions, 6 deletions
| diff --git a/firebase-io/firebase-io.js b/firebase-io/firebase-io.js index bfcca0f..e4e7305 100755 --- a/firebase-io/firebase-io.js +++ b/firebase-io/firebase-io.js @@ -10,6 +10,7 @@ firebase.initializeApp({  const fieldConverters=new Map([  	["token",(b)=>b.toString()],  	["user",(b)=>b.toString()], +	["to_user",(b)=>b.toString()],  	["room",(b)=>b.toString()],  	["message",(b)=>b.toString()],  	["timestamp",(b)=>b.toString()],  // Nanosecond timestamps are too close to 52-bit range @@ -71,6 +72,7 @@ function processMessage(type,fields){  	switch(type){  		case "message":  			const user=fields.get("user"); +			const to_user=fields.get("to_user");  			const room=fields.get("room");  			const token=fields.get("token");  			const payload={ @@ -78,6 +80,10 @@ function processMessage(type,fields){  					title: user+" ("+room+")",  					body: fields.get("message"),  					tag: room, +				}, +				data: { +					user: user, +					room: room,  				}  			};  			firebase.messaging().sendToDevice(token,payload) @@ -85,10 +91,11 @@ function processMessage(type,fields){  					const result=response.results[0];  					const realToken=result.canonicalRegistrationToken;  					if(result.error){ -						console.error("JS: Send error:",result.error); +						console.error("JS: Send error:",result.error.errorInfo); +						console.log("delete_token "+to_user+" "+token);  					} else if(realToken&&realToken!=token){ -						console.log("delete_token "+user+" "+token); -						console.log("add_token "+user+" "+realToken); +						console.log("delete_token "+to_user+" "+token); +						console.log("add_token "+to_user+" "+realToken);  					}  				})  				.catch((err)=>{ @@ -16,11 +16,13 @@ static void write_field(FILE *f,const char *key,const char *value){  	fprintf(f," %s %zu %s",key,strlen(value),value);  } -static void token_send(const char *token,const char *room,const char *user,const char *msg){ +static void token_send(const char *token,const char *to_user,const char *room,const char *user,const char *msg){ +	fprintf(stderr,"token_send(%s,%s,%s,%s,%s)\n",token,to_user,room,user,msg);  	fprintf(js_write,"message");  	write_field(js_write,"token",token);  	write_field(js_write,"room",room);  	write_field(js_write,"user",user); +	write_field(js_write,"to_user",to_user);  	write_field(js_write,"message",msg);  	fprintf(js_write,"\n");  	fflush(js_write); @@ -67,7 +69,7 @@ static void script_output_listener(FILE *js_read){  		continue;  	invalid_line: -		fprintf(stderr,"firebase thread: Invalid line form js script: <%s>\n",line); +		fprintf(stderr,"firebase thread: Invalid line from js script: <%s>\n",line);  	}  } @@ -130,7 +132,7 @@ void firebase_send_message(const char *room,i64 roomid,const char *user,const ch  		if(userdata_is_active(members.list[i].id))continue;  		struct db_strings_list tokens=db_user_tokens(members.list[i].id);  		for(i64 j=0;j<tokens.count;j++){ -			token_send(tokens.list[j],room,user,msg); +			token_send(tokens.list[j],members.list[i].name,room,user,msg);  		}  		db_nullify_strings_list(tokens);  	} | 
