Я следил за видео на Youtube о доступе к определенному значению из моей базы данных, это именно то, что было в видео (за исключением того, что я изменил его на свои значения). Когда их приложение запускалось, оно произносило тост с соответствующими значениями. Когда я запускаю свой, я получаю сообщение об ошибке «К сожалению, приложение остановлено». Я что-то делаю не так или неправильно?
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseDatabase database = FirebaseDatabase.getInstance();
test = database.getReference("https://matts-macros.firebaseio.com/values");
test.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<String, String> data = (Map<String, String>) dataSnapshot.getValue();
Toast.makeText(getApplicationContext(), "Value: + " + data.get("adjustedcarbs"), Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}

Я получаю сообщение об ошибке «java.lang.ClassCastException: java.lang.Long не может быть преобразован в java.langString» в строке моего тоста.
Я относился к своим ценностям так, как если бы они были строками, а не длинными. Простое изменение Map <String, String> на Map <Long, Long> устранило мою проблему.
Правильный способ - рассматривать ваши объекты как Map <String, Object>, проверьте мой ответ :)
Вы неправильно обращаетесь к ссылке. См. документы. Вам следует сделать одно из двух:
1) Замените это:
test = database.getReference("https://matts-macros.firebaseio.com/values");
с этим:
test = database.getReference().child("values");
2) Если вы хотите использовать свой URL-адрес, вам следует сделать это вместо этого:
String myUrl = "https://matts-macros.firebaseio.com/values";
test = FirebaseDatabase.getInstance().getReferenceFromUrl(myUrl);
Что касается вашей ошибки синтаксического анализа, попробуйте с Map<String,Object>:
Map<String, Object> data = (Map<String, Object>) dataSnapshot.getValue();
Хорошо заметный Леви! Спасибо за помощь другому разработчику Firebase!
Спасибо за помощь! Я также рассматривал свои значения как строки, а не как длинные, что привело к закрытию моего приложения.
да, это всегда меня тоже достает :)
Если вы проверите журнал консоли в студии Android, вы увидите ошибку. Вы можете распечатать это здесь?