android-检查特定孩子的Firebase值是否不同

时间:2019-03-31 06:17:15

标签: android

我尝试过,当用户按下按钮时,它会检测它是否在“ Disponible” Pedido值,“ Enviado” Pedido值中,或者它是否没有直接生成那些子级,但是每当我按下按钮时,它都会生成即使我从数据库中将值更改为“ Enviado”,也可以将“ Disponible”中的子项

我尝试更改if和else的位置,但未做任何更改

public void onClick(DialogInterface dialog, int i) {
                                      if (i == 0)
                                      {
                                          PedidosRef.child(currentUserID).child(profileTelefono).addListenerForSingleValueEvent(new ValueEventListener() {
                                              @Override
                                              public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                                  if (dataSnapshot.hasChild("Disponible"))
                                                  {
                                                      Intent intent = new Intent(getContext(), PedidosActivity.class);
                                                      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                                      startActivity(intent);
                                                  }
                                                  else if (dataSnapshot.hasChild("Enviado"))
                                                  {
                                                      Toast.makeText(getContext(), "Ocupa2", Toast.LENGTH_SHORT).show();
                                                  }
                                                  else
                                                  {
                                                      HashMap<String, Object> userdataMap = new HashMap<>();
                                                      userdataMap.put("Pedido", "Disponible");
                                                      PedidosRef.child(currentUserID).child(profileTelefono).updateChildren(userdataMap)
                                                              .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                                  @Override
                                                                  public void onComplete(@NonNull Task<Void> task) {
                                                                      if (task.isSuccessful())
                                                                      {
                                                                          PedidosRef.child(profileTelefono).child(currentUserID).addValueEventListener(new ValueEventListener() {
                                                                              @Override
                                                                              public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                                                                  HashMap<String, Object> userdataMap = new HashMap<>();
                                                                                  userdataMap.put("Pedido", "Disponible");
                                                                                  PedidosRef.child(profileTelefono).child(currentUserID).updateChildren(userdataMap)
                                                                                          .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                                                              @Override
                                                                                              public void onComplete(@NonNull Task<Void> task) {
                                                                                                  Intent intent = new Intent(getContext(), PedidosActivity.class);
                                                                                                  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                                                                                  startActivity(intent);
                                                                                              }
                                                                                          });
                                                                              }

                                                                              @Override
                                                                              public void onCancelled(@NonNull DatabaseError databaseError) {

                                                                              }
                                                                          });
                                                                      }
                                                                  }
                                                              });
                                                  }
                                              }

                                              @Override
                                              public void onCancelled(@NonNull DatabaseError databaseError) {

                                              }
                                          });
                                      }
                                    }

我想要实现的是可以识别出它在“ Enviado” Pedido值中,并且不会在“ Disponible” Pedido中再次生成,因此,如果它在“ Enviado” Pedido值中,则将不允许更改活动,如果它检测到“ Disponible” Pedido值已经存在,请访问活动

0 个答案:

没有答案