Моя идея - позволить пользователю добавлять вещи в свой список пользователей. Когда пользователь нажимает флажок, он создает элемент с данными в базе данных FireBase (я хочу отсортировать список пользователей в будущем по времени).
Я делаю это с помощью следующего кода:
favCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(b){
//Add item
favMap.put("comicsId", comicsId);
favMap.put("comicsGenreId", comicsGenreId);
favMap.put("comicsTitle", comicsTitle);
favMap.put("time", ServerValue.TIMESTAMP);
favListRef.setValue(favMap);
}
if(!b){
//Remove item
favListRef.removeValue();
}
}
});
И для проверки checkBox (если пользователь уже добавил элемент ранее) я использую код:
//Check if already added
favListRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()){
if(dataSnapshot1.getValue() != null && !dataSnapshot1.getValue().equals("")){
//Item already added set as checked
favCheckBox.setChecked(true);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) { }
});
Таким образом, все в порядке, за исключением каждого случая, когда код «проверки» обнаруживает, что элемент уже добавлен, устанавливает флажок как проверенный и затем время обновления базы данных ( это разрушает мою идею сортировки по времени).
Как я могу реализовать идею "TIMESTEAMP" с базой данных FireBase, а не обновлять время после каждой проверки?
Хотели бы увидеть ваши ответы и фрагменты совета. Заранее спасибо.