![](/img/trans.png)
[英]How to get a user by Id and delete it after from firebase auth database
[英]how to delete GCMRegistered device id from database if user Uninstall application
public class GCMIntentService extends GCMBaseIntentService {
NotificationManager mNotificationManager;
Context cc;
@Override
protected void onRegistered(Context context, String regId) {
Intent intent = new Intent(Constants1.ACTION_ON_REGISTERED);
intent.putExtra(Constants1.FIELD_REGISTRATION_ID, regId);
context.sendBroadcast(intent);
}
@Override
protected void onUnregistered(Context context, String regId) {
Log.i(Constants1.TAG, "onUnregistered: " + regId);
AlertDialog.Builder alert = new AlertDialog.Builder(
getApplicationContext());
alert.show();
}
@Override
protected void onMessage(Context context, Intent intent) {
/**
* You can get the Extras from TaxMann server
*
* Bundle _bundle = intent.getExtras();
*/
String msg = intent.getStringExtra("payload");
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
BackgroundAlert bg = new BackgroundAlert(mNotificationManager, msg);
bg.onReceive(getApplicationContext(), intent);
}
@Override
protected void onError(Context context, String errorId) {
}
}
这是我对gcm的代码,当我向所有注册设备ID发送通知时,我的数据库中大约有15000个registered_device_id用于通知,然后显示10000成功和6000不成功。我想从我们的数据库中删除所有6000注册的设备ID,以便得到通知的时间更少。
您无需在android代码中执行任何操作。 GCM足够聪明来处理它。 因此,一旦我们的应用程序被卸载,GCM将负责从GCM中删除该注册ID。 但是,我们必须从服务器数据库中删除该注册ID,一旦收到GCM的响应“ NotRegistered”,就必须从数据库中删除该特定注册ID。
以下是事件的顺序。
- 最终用户将卸载该应用程序。
- 第三方服务器向GCM服务器发送一条消息。
- GCM服务器将消息发送到设备。
- GCM客户端接收到该消息,并向程序包管理器查询是否有配置为接收该消息的广播接收器,该接收器返回false。
- GCM客户端通知GCM服务器该应用程序已卸载。
- GCM服务器将注册ID标记为删除。
- 第三方服务器向GCM发送一条消息。
- GCM向第三方服务器返回一条NotRegistered错误消息。一旦收到GCM的此类回应,我们就必须从数据库中删除该特定注册ID。
跟随该链接可能对您有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.