Я хочу обновить начальное значение метки времени сервера, хранящееся в моей базе данных firebase, поэтому я сделал это таким образом, чтобы значение метки времени впоследствии обновлялось, но, похоже, это вызывает серьезную проблему при запуске приложения в Сначала он работает нормально, но после изменения значения дважды, он просто зависает, как отметка времени постоянно обновляется. Я не знаю, как сделать его идеальным.
Ниже приведен код, который я добавил и хочу изменить значение метки времени.
mRootRef.child("Chat").child(mCurrentUserId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!dataSnapshot.hasChild(mChatUser)){
Map chatAddMap = new HashMap();
chatAddMap.put("seen",false);
chatAddMap.put("uid",mChatUser);
chatAddMap.put("timestamp", ServerValue.TIMESTAMP);
Map chatUserMap = new HashMap();
chatUserMap.put("Chat/" + mCurrentUserId + "/" + mChatUser,chatAddMap);
chatUserMap.put("Chat/" + mChatUser + "/" + mCurrentUserId,chatAddMap);
mRootRef.updateChildren(chatUserMap, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
if (databaseError != null){
Log.d("CHAT LOG", databaseError.getMessage().toString());
}
}
});
}else {
mRootRef.child("Chat").child(mCurrentUserId).child(mChatUser).child("timestamp").setValue(ServerValue.TIMESTAMP);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});