Я получаю неверный ключ postKey от push(), когда пытаюсь получить ключ при загрузке сообщения

При загрузке поста я пытаюсь получить postKey и загрузить его в динамическую ссылку, но получаю неправильный postKey (первые 6 символов в ключе правильные, остальные неправильные). Как я могу получить правильный postKey при загрузке сообщения?

Это мой пост, включая правильный постКлюч:

Я получаю неверный ключ postKey от push(), когда пытаюсь получить ключ при загрузке сообщения

И это то, что я получаю -LYelE9TdCU73qW1Xisc , что также не является ключом для любых других сообщений.

Мой код

String postKey = FirebaseDatabase.getInstance().getReference().child("posts").push().getKey();
        Log.i("postkey for dynamiclink",postKey);

Очень ценю вашу помощь!

Спасибо, Питер, ты прав, я создавал еще один почтовый ключ. Я удалил дублированный .push() и, используя ту же строку кода, решил проблему.

Leo S 15.02.2019 03:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В своем коде вы создаете еще один postKey, используя push().getKey().

Чтобы получить ключ, который уже есть в базе данных, попробуйте следующее:

  DatabaseReference reference = FirebaseDatabase.getInstance().getReference("posts");

reference.orderByChild("title").equalTo("test").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
  for(DataSnapshot datas: dataSnapshot.getChildren()){
     String keys=datas.getKey();
    }
 }
@Override
public void onCancelled(DatabaseError databaseError) {
    }
 });

Спасибо, Питер, ты прав, я создавал еще один почтовый ключ. Я удалил дублированный .push() и, используя ту же строку кода, решил проблему.

Leo S 15.02.2019 04:07

Другие вопросы по теме