Похоже, вы пытаетесь обновить узел для пользователя, основываясь на знании адреса электронной почты этого пользователя.Чтобы записать любые данные в базу данных Firebase, вам необходимо знать точный путь к данным, которые вы хотите обновить.Поскольку вы, похоже, не знаете идентификатор, вам нужно его искать по адресу электронной почты.
mDatabase.child("users").orderByChild("email").equalTo(u.getEmail()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
userSnapshot.getRef().child("playerData").child("playerMoney").setValue(Math.ceil(tap(playerMoney)));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
}
Обратите внимание, что этот тип запроса часто является анти-паттерном в Firebase.В идеале вы хотите иметь структуру данных, которая не требует запроса такого обновления.Например, если вы храните пользователей по их UID, вы можете выполнить то же обновление с помощью этого гораздо более простого кода:
mDatabase.child("users").child(u.getUID()).child("playerData/playerMoney").setValue(Math.ceil(tap(playerMoney)));