Я создаю небольшую онлайн-игру, в которой есть 4 основных действия:
Деятельность для игроков, которые ведут игру, и еще одна для игроков, которые присоединятся к ним.
Когда игрокприсоединяясь, действие хоста создает дочернюю структуру с именем «Matches» в базе данных Firebase и вводит в нее сведения об игре, затем отправляет хост новой активности с именем «OnlineGameForHost» и присоединяющегося игрока к новой активности с именем «OnlineGame».Затем это действие пытается извлечь данные из дочерних «совпадений» в базе данных, но я получаю эту ошибку: NullPointerException.
Я даже пытался добавить задержку в 3 секунды перед запуском «OnlineGame», чтобы убедиться, что данныеуже на Firebase, но все еще ничего не работает.Однако я могу получить данные мгновенно, когда запускается другая активность «OnlineGameForHost». Это довольно странно
java.lang.NullPointerException: попытка вызвать виртуальный метод 'java.lang.String java.lang.Object.toString () 'для пустой ссылки на объект в premiereapplication.automation.test.goldsilver_f.OnlineGame $ 3.onDataChange (OnlineGame.java:171)
mUsersDatabase.child("Matches").child(WhenJoining.need+","+mCurrentUser.getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.child(WhenJoining.need).child("ready").getValue().toString().equals("yes") && dataSnapshot.child(mCurrentUser.getUid()).child("ready").getValue().toString().equals("yes"))
{
}
PS: строка 171 - этозаявление «если» и просто упомянуть, что все дочерние имена верны, поскольку я проверил их все с помощью тостов.
Надеюсь найти какие-то решения и спасибо!:)