有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 安卓 studio将firebase中的日期子项与日期设备进行比较

我如何比较用户在注册所用设备的日期和月份(firebase child:Cummarkños)时注册的日期和月份?这就是我试过的

firebase database child Cumpleaños: 08-Nov

   protected void onStart() {
       super.onStart();
       CumpleañosRef = FirebaseDatabase.getInstance().getReference().child("Usuarios").child(CurrentUserID);
       Calendar calendar = Calendar.getInstance();

       final SimpleDateFormat currentDate = new SimpleDateFormat("dd-MMM", Locale.getDefault());
       saveCurrentDate = currentDate.format(calendar.getTime());
       CumpleañosRef.addListenerForSingleValueEvent(new ValueEventListener() {
           @Override
           public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
               if (dataSnapshot.child("Cumpleaños").equals(currentDate))
               {
                relativeLayout.setBackgroundColor(Color.parseColor("#dd89d7"));
               }
               else
               {
                   relativeLayout.setBackgroundColor(Color.parseColor("#ffffff"));
               }
           }

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

           }
       });
   }

需要在firebase子设备和设备的日期重合(日和月)时更改背景颜色。谢谢


共 (1) 个答案

  1. # 1 楼答案

    通过调用getValue()(检查null以避免NullPointerException),您总是可以获得子级的值

    String dateAsStringFromDB = dataSnapshot.child("Cumpleaños").getValue();
    

    在获得字符串值(例如“09 Nov”)之后currentDate来解析日期

    Date realtimeDate = currentDate.parse(saveCurrentDate);
    Date dateFromDB = currentDate.parse(dateAsStringFromDB);
    

    然后用compareTo()方法比较日期

    if(realtimeDate.compareTo(dateFromDB) == 0 ){
     // do stuff .. 
    
     }
    

    不要忘记避免空指针和强制转换异常