我有可以选择使用多个设备登录的应用。我想当用户从另一台设备中的一台设备删除时注销,并将自动和立即删除。 我在这里读:How to force logout firebase auth user from app remotely在那儿。 我考虑了广播的方式。我做到了:
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
Set<String> keySet = map.keySet();
List<String> list = new ArrayList<String>(keySet);
deviceKey = list.get(0);
mDatabaseReference.child(deviceKey).child("user").removeValue();
intentFilter = new IntentFilter(deviceKey);
receiver = new MyBroadcastReceiver();
registerReceiver(receiver, intentFilter);
Intent intent = new Intent(deviceKey);
sendBroadcast(intent);
//dataSnapshot.getRef().child(Constants.USER_PROFILE_ACCOUNT_KEY).removeValue();
}
}
和
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Constants.androidId))
Toast.makeText(context, "deleted account happen", Toast.LENGTH_LONG).show();
}
}
当Constants.androidId等于android Id并且intent.getAction()等于已删除用户的root时。 我在2台设备中运行它,但在匹配的设备中我看不到Toast。
任何原因或建议?