Я попытался className.this.fini sh и finishActivity (), чтобы вызвать завершение своей деятельности, и я инициализировал эту операцию следующими методами - startActivityForResult () или finishAndRemoveTask ()
. Эта операция предполагает регистрацию устройства. Это делается, когда в разделе Устройства / (MA C адрес устройства) / Пользователи / сохраняется в пожарной базе до 4 различных маркеров уведомлений 4 различных пользователей. Так что я пытаюсь сделать, но падает, чтобы проверить, есть ли у номера 1 информация, проверьте 2, если есть информация, проверьте 3, и если это имеет информацию, проверьте 4, если у всех есть информация, приложение показывает сообщение «вы достигли максимального числа пользователей ". Но если доступно только одно число, то предполагается сохранить в этом номере и только в этом номере токен уведомления.
Что происходит, когда я нажимаю кнопку, то l oop никогда не кончится. он отправляет один и тот же токен уведомления для четырех пользователей, отображает сообщение «Вы достигли максимального числа пользователей», а затем возвращается к действию до этого, но все еще выполняет код регистрации. Я знаю это, потому что, если я удалил пользователя в firebase, он сразу же повторно отправит информацию, и вы снова увидите сообщение «вы достигли максимального числа пользователей»
это код действия, которое отправляет информацию :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_cerca);
fAuth = FirebaseAuth.getInstance();
entr = findViewById(R.id.AddButton);
mDatabase = FirebaseDatabase.getInstance().getReference();
sDatabase = FirebaseDatabase.getInstance().getReference();
aDatabase = FirebaseDatabase.getInstance().getReference();
MAC =findViewById(R.id.macCerca);
NOM = findViewById(R.id.momCerca);
configured = false;
getUserProfile();
getNotificationId();
entr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MacCerca = MAC.getText().toString().toUpperCase();
NombreCerca = NOM.getText().toString();
//mDatabase.child("Devices").child(MacCerca).child("Id").setValue("AD:23");
mDatabase.child("Devices").child(MacCerca).child("Users").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String user1 = (String) dataSnapshot.child("1").getValue();
String user2 = (String) dataSnapshot.child("2").getValue();
String user3 = (String) dataSnapshot.child("3").getValue();
String user4 = (String) dataSnapshot.child("4").getValue();
if(user1 == null){
aDatabase.child("Devices").child(MacCerca).child("Users").child("1").setValue(token);
aDatabase.child("Devices").child(MacCerca).child("NombreCerca").setValue(NombreCerca);
aDatabase.child("Users").child(mail).child("Device").setValue(MacCerca);
AddCerca.this.finish();
}else if(user2 ==null){
aDatabase.child("Devices").child(MacCerca).child("Users").child("2").setValue(token);
aDatabase.child("Devices").child(MacCerca).child("NombreCerca").setValue(NombreCerca);
aDatabase.child("Users").child(mail).child("Device").setValue(MacCerca);
AddCerca.this.finish();
}else if(user3 ==null){
aDatabase.child("Devices").child(MacCerca).child("Users").child("3").setValue(token);
aDatabase.child("Devices").child(MacCerca).child("NombreCerca").setValue(NombreCerca);
aDatabase.child("Users").child(mail).child("Device").setValue(MacCerca);
AddCerca.this.finish();
}else if(user4 ==null){
aDatabase.child("Devices").child(MacCerca).child("Users").child("4").setValue(token);
aDatabase.child("Devices").child(MacCerca).child("NombreCerca").setValue(NombreCerca);
aDatabase.child("Users").child(mail).child("Device").setValue(MacCerca);
AddCerca.this.finish();
}else{
Toast.makeText(AddCerca.this, "Límite de usuarios registrados exedidos", Toast.LENGTH_SHORT).show();
AddCerca.this.finish();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
и я создаю это действие так:
startActivity(new Intent(CercaElectrica.this, AddCerca.class));
Firebase выглядит так:
![enter image description here](https://i.stack.imgur.com/ZkLy8.png)
Когда он предназначен только для пользователя 1 или если у пользователя 1 есть какие-то данные, он должен обновить пользователя 2 и то же самое с 3 и 4