Я хочу проверить, присутствуют ли данные в базе данных или нет, но когда я запускаю приведенный ниже код, я получаю вывод, но не так, как хотелось бы, я имею в виду, что то, что нужно выполнить на третьем месте, выполняется в самый последний Исполнение идет не так, как я думал go
Также мое дерево json выглядит так:
Это ссылка на изображение моего json tree
user-
-randomUserID-
----- имя: значение
----- телефон: значение
----- создано для :
------------ phoneNumber: id
Я хочу go выполнить, чтобы он выдавал следующие сообщения журнала
I/heyey1: heyey
I/hey3null: hey2
I/heyhere3: heyey
I/heyvalue of k: heyey
I/heyre4: heyey
I/heyre45: heyey
но я получаю это
I/heyey1: heyey
I/heyhere3: heyey
I/heyvalue of k: heyey
I/heyre4: heyey
I/heyre45: heyey
I/hey3null: hey2
Код:
public class userListAdapter extends RecyclerView.Adapter<userListAdapter.userListViewHolder> {
variableValue b = new variableValue();
holder.layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String n="123456789";
b.setVal("heyey");
Log.i("heyey1",b.getVal());
String k=checkUser(n);
Log.i("heyvalue of k",k);
Log.i("heyre4",b.getVal());
if (b.getVal()!=null)
{
Log.i("heyre45",b.getVal());
}
else
{
/// some code
}
}
});
}
private String checkUser(final String n) {
final DatabaseReference dbref=FirebaseDatabase.getInstance().getReference().child("user");
dbref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(n))
{
b.setVal(dataSnapshot.child(n).getValue().toString());
Log.i("hey2",b.getVal());
}
else
{
b.setVal("heymhey");
Log.i("hey3",b.getVal());
}
}
Log.i("heyhere3",b.getVal());
return b.getVal();
}
public class variableValue
{
private String val="kororr";
public String getVal() {
return val;
}
public void setVal(String val) {
this.val = val;
}
}
}