Как правильно сделать лайк функцию в firebase?

179
07 апреля 2019, 15:50

Есть приложение, в нем посты. Лайки, сделал следующим образом:

postReference = firebaseDatabase.getInstance().getReference().child("Posts");   
holder.likeBtn.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            final DatabaseReference likeReference = postReference.child(listUserId).child("Likes");
                            likeReference.addValueEventListener(new ValueEventListener() {
                            @Override
                            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                if (!dataSnapshot.hasChild(currentUserId)){
                                    likeReference.child(currentUserId).removeValue();
                                }else {
                                    likeReference.child(currentUserId).setValue("Like");
                                }
                            }
                            @Override
                            public void onCancelled(@NonNull DatabaseError databaseError) {
                            }
                        });

Проблема в том что, после нажатия на кнопку, запись в базе начинает добавляться и удаляться без остановки. Как это исправить? Моя БД:

Решение: вместо addValueEventListener, надо использовать addListenerForSingleValueEvent.

READ ALSO
Добавление библиотек в Intellij Idea

Добавление библиотек в Intellij Idea

Мне необходимо добавить библиотеки, скачанные с интернета, которые хранятся в форме каталогов, в проектДелаю это следующим образом: File->Project...

189
Для чего нужен метод BigInteger probablyPrime ?

Для чего нужен метод BigInteger probablyPrime ?

Наткнулся на метод probablePrime в классе BigInteger, кто-то может объяснить для чего он нужен, и как он работает ?

161
Java аргументы или что то вроде этого

Java аргументы или что то вроде этого

В интернете нашел такие "аргументы" как: ||, &&, &, |

163
Как правильно прописывать стили?

Как правильно прописывать стили?

Как правильно прописывать стили?

189