如何通过BroadcastReceiver强制从应用程序远程注销Firebase Auth用户

时间:2019-01-21 20:24:54

标签: android firebase firebase-realtime-database

我有可以选择使用多个设备登录的应用。我想当用户从另一台设备中的一台设备删除时注销,并将自动和立即删除。 我在这里读: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。

任何原因或建议?

我的结构: realtime db

0 个答案:

没有答案