Как изменить ключ в базе данных Firebase? - PullRequest
0 голосов
/ 03 сентября 2018

Я создаю приложение для социальных сетей. Все данные пользователя являются дочерними по отношению к объекту имени пользователя. Например

root:
  +users:
    +ricksanchez:
      +name:"Rick Sanchez";
      +email:"rick@sanchez.com";
      +bio:"I'm super smart";
      +followers:
        +follower1:morty;
        +follower2:summer;
      ....

Как сменить риксанчез ключ без потери данных?

Можно ли переименовать ключ в базе данных Firebase Realtime?

Я проверил этот вопрос, но я новичок в кодировании. Полагаю, это не Java. Знаете, как это сделать на Java?

1 Ответ

0 голосов
/ 03 сентября 2018

Вы не можете изменить имя ключа, скажем, ricksanchez на другое. Для этого нет API. Если вы хотите изменить имя ключа, вам определенно необходимо скопировать этот конкретный объект в другое место, изменить имя и затем удалить старую запись. Но поменять имя ключа в Firebase невозможно.

Изменить: В соответствии с вашим комментарием, пожалуйста, используйте следующий метод для копирования записи из одного места в другое.

private void copyRecord(DatabaseReference fromPath, final DatabaseReference toPath) {
    ValueEventListener valueEventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            toPath.setValue(dataSnapshot.getValue()).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isComplete()) {
                        Log.d(TAG, "Success!");
                    } else {
                        Log.d(TAG, "Copy failed!");
                    }
                }
            });
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    fromPath.addListenerForSingleValueEvent(valueEventListener);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...