Android Studio Firebase数据库返回空对象引用

Android Studio Firebase数据库返回空对象引用,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,大家好,我需要你们,我对Firebase实时数据库有问题,我成功地将数据放入Firebase,但当我尝试从Firebase检索数据时,我遇到了一个问题,那就是如何放入数据 private void user_info(String user_id, String user_display_name) { mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id);

大家好,我需要你们,我对Firebase实时数据库有问题,我成功地将数据放入Firebase,但当我尝试从Firebase检索数据时,我遇到了一个问题,那就是如何放入数据

private void user_info(String user_id, String user_display_name) {

    mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id);

    HashMap<String, String> userMap = new HashMap<>();
    userMap.put("Name",user_display_name);
    userMap.put("Balls","30");
    userMap.put("Level","1");
    mProgressDialog.setMessage("Please Wait...");

    mDatabase.setValue(userMap).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {

            if (task.isSuccessful()){

            }
            else
                Toast.makeText(WelcomeActivity.this, ""+task.getException(), Toast.LENGTH_SHORT).show();
                mProgressDialog.dismiss();
        }
    });

}
private FirebaseUser mUser;
private DatabaseReference mDatabase;
private String level,level1;
private int lev,i;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_level_acticity);

    //Image
    mImg_level1 = (ImageView)findViewById(R.id.mImg_lev1);
    mImg_level2 = (ImageView)findViewById(R.id.mImg_lev2);
    mImg_level3 = (ImageView)findViewById(R.id.mImg_lev3);
    mImg_level4 = (ImageView)findViewById(R.id.mImg_lev4);
    mImg_level5 = (ImageView)findViewById(R.id.mImg_lev5);
    mImg_level6 = (ImageView)findViewById(R.id.mImg_lev6);
    mImg_level7 = (ImageView)findViewById(R.id.mImg_lev7);
    mImg_level8 = (ImageView)findViewById(R.id.mImg_lev8);
    mImg_level9 = (ImageView)findViewById(R.id.mImg_lev9);
    mImg_level10 = (ImageView)findViewById(R.id.mImg_lev10);
    mImg_level11 = (ImageView)findViewById(R.id.mImg_lev11);




    //Firebase
    mUser = FirebaseAuth.getInstance().getCurrentUser();
    String user_id = mUser.getUid();



    mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id);
    mDatabase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            level = dataSnapshot.child("Level").getValue().toString();
            if (level.equals("1")){
                level1 = "1";
            }



            }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    Toast.makeText(this, level1, Toast.LENGTH_SHORT).show();
土司没有显示任何内容,因为它为空

更改以下内容:-

mDatabase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            level = dataSnapshot.child("Level").getValue().toString();
            if (level.equals("1")){
                level1 = "1";
            }



            }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    Toast.makeText(this, level1, Toast.LENGTH_SHORT).show();
为此:-

mDatabase.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        level = dataSnapshot.child("Level").getValue().toString();
        if (level.equals("1")){
            level1 = "1";

        }
         Toast.makeText(this, level1, Toast.LENGTH_SHORT).show();
        }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

这样做的原因是Firebase异步下载,代码行同步执行

可能重复我看到这篇文章我解决了问题,但数据仍然返回null看我的更新仍然返回null什么是返回null?在字段中输入文本。发布真实问题。发布的问题已通过标记的帖子解决。更改代码后,您的新错误是什么?如何在level 1中保存level的值?