Приложение для социальных сетей: комментарии заменяются друг другомAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Приложение для социальных сетей: комментарии заменяются друг другом

Сообщение Anonymous »

Я создаю приложение для социальных сетей, используя Android Studio и Java.
Моя проблема заключается в функции комментариев в разделе комментариев приложения. Всякий раз, когда пользователь пытается опубликовать комментарий, его предыдущие комментарии заменяются новыми.
Вот код, в котором, по моему мнению, заключается проблема. Я также добавил метод push() в конце ссылки на базу данных PostsRef, но комментарии по-прежнему заменяют друг друга.

Код: Выделить всё

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_comments);

Post_key = getIntent().getExtras().get("PostKey").toString();
PostsRef = FirebaseDatabase.getInstance().getReference().child("Posts").child(Post_key).child("comments").push();
String comment_push_id = PostsRef.getKey();

mAuth = FirebaseAuth.getInstance();
current_user_id = mAuth.getCurrentUser().getUid();

UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");

CommentsList = findViewById(R.id.comments_list);
CommentsList.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setReverseLayout(true);
linearLayoutManager.setStackFromEnd(true);
CommentsList.setLayoutManager(linearLayoutManager);
Вот соответствующая часть кода, которая может быть полезна -

Код: Выделить всё

PostCommentButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

UsersRef.child(current_user_id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists())
{
String userName = snapshot.child("username").getValue().toString();
ValidateComment(userName);

CommentInputText.setText("");
}
}

@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
});
Вот часть кода, где пользователь вставляет комментарии в базу данных Firebase –

Код: Выделить всё

private void ValidateComment(String userName) {
String commentText = CommentInputText.getText().toString();

if(TextUtils.isEmpty(commentText))
{
Toast.makeText(this,"Please write text to comment...",Toast.LENGTH_LONG).show();
}
else
{
Calendar callForDate = Calendar.getInstance();
SimpleDateFormat currentDate = new SimpleDateFormat("dd-MMMM-yyyy");
final String saveCurrentDate = currentDate.format(callForDate.getTime());

Calendar callForTime = Calendar.getInstance();
SimpleDateFormat currentTime = new SimpleDateFormat("HH:mm");
final String saveCurrentTime = currentTime.format(callForDate.getTime());

final String RandomKey = current_user_id + saveCurrentDate + saveCurrentTime;

HashMap commentsMap = new HashMap();
commentsMap.put("uid",current_user_id);
commentsMap.put("comment",commentText);
commentsMap.put("date",saveCurrentDate);
commentsMap.put("time",saveCurrentTime);
commentsMap.put("username",userName);
PostsRef.child(RandomKey).updateChildren(commentsMap).addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if(task.isSuccessful())
{
Toast.makeText(CommentsActivity.this,"comment posted successfully....",Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(CommentsActivity.this,"Error Occured, Try Again...",Toast.LENGTH_LONG).show();
}
}
});
}
}
В базе данных также не сохраняются некоторые комментарии, а сохраняются только замененные.

Подробнее здесь: https://stackoverflow.com/questions/784 ... each-other
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»