Удаление случайного второго ребенка в базе данных реального времени Firebase, созданной с помощью push в Android Studio - PullRequest
0 голосов
/ 27 января 2019

Я храню данные о пользователях в базе данных Firebase в реальном времени и отображаю их в виде списка.Я установил вид списка на прослушивателе нажатия кнопки, чтобы пользователь мог удалить его, если захочет.Я использовал push (), поэтому при создании нового сообщения генерируется случайный ключ.Теперь я не могу удалить его.Я также пытался использовать этот ключ как дочерний, но не могу найти способ как его удалить.Любая помощь очень ценится.

I want this

Я хочу, чтобы этот "-LX5Db4_suS_wPjzRDLE" удалялся только тогда, когда пользователь щелкнет этот пост в представлении списка.Поскольку я использую это для отображения в истории сообщений пользователя, я могу получить только 1-го ребенка, используя getUid () для текущего пользователя.

Вот код, который я пробовал,

 FirebaseDatabase database=FirebaseDatabase.getInstance();
final DatabaseReference ref=database.getReference("Donation Post").child(user.getUid());

ref.removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {

        if (task.isSuccessful()){
            Toast.makeText(UserPostHistoryActivity.this, "Post Deleted Successfully", Toast.LENGTH_SHORT).show();
        }else {
            Toast.makeText(UserPostHistoryActivity.this, "Post Not Deleted!!!", Toast.LENGTH_SHORT).show();

        }
    }
});

1 Ответ

0 голосов
/ 27 января 2019

Чтобы удалить элемент в пользовательском узле, вам необходимо знать ключ этого элемента.Так, например, чтобы удалить элемент -LX5Db4_suS_wPjzRDLE, вам потребуется:

database.getReference("Donation Post").child(user.getUid()).child("-LX5Db4_suS_wPjzRDLE").removeValue();

Если элементы находятся в списке и вы хотите удалить элемент, по которому щелкнул пользователь, у вас обычно будетOnItemClickListener и вашему OnItemClick будет сообщено положение элемента, на котором пользователь щелкнул.Вам нужно сопоставить эту позицию с ключом, а затем запустить приведенный выше код.

Если вы используете встроенный адаптер FirebaseUI для отображения элементов в ListView, вы можете получить ссылку на выбранный элемент, как показано здесь: Как удалить текущий выбранный элемент в ListView, который работает с FirebaseListAdapter?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...