我从Firebase获取数据并将其显示在TextView中,但出现一些错误。任何人都可以检查我的代码并建议我

时间:2019-03-15 06:47:37

标签: java android

我正在尝试从Firebase获取数据,以将其显示在TextView中。实际上,我是android新手,有人可以告诉我这是什么问题吗?

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference("https://videoanimation-a931e.firebaseio.com/");
        auth = FirebaseAuth.getInstance();
        String userId = auth.getCurrentUser().getUid();

        DatabaseReference uidRef = rootRef.child("Person").child(userId);
        ValueEventListener valueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                User user = dataSnapshot.getValue(User.class);

                if(user !=null) {
                    String name = user.getName();
                    String email = user.getEmail();
                    String designation = user.getDesignation();


                    textViewName.setText(name);
                    textViewEmail.setText(email);
                    textViewDesignation.setText(designation);
                }else {
                    Toast.makeText(ProfileActivity.this, "user is null", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        };
        uidRef.addListenerForSingleValueEvent(valueEventListener);
    }

2 个答案:

答案 0 :(得分:0)

我点知道我的答案是否可以帮助您,但是请看一下我的代码片段,这种方法如何获得价值firebase实时数据库子用户价值

//Getting Uid user
    mAuth = FirebaseAuth.getInstance();
    if (mAuth.getCurrentUser() != null) {


        mUserRef = FirebaseDatabase.getInstance().getReference().child("Users").child(mAuth.getCurrentUser().getUid());

        mUserRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                String name = ""+dataSnapshot.child("nama").getValue().toString();
                String jabatan = ""+dataSnapshot.child("jabatan").getValue().toString();
                String image = ""+dataSnapshot.child("image").getValue().toString();
                display_name.setText(""+name);
                display_address.setText(""+jabatan);
                if (!image.equals("default") && image!= null){
                    Glide.with(getApplicationContext()).load(image).listener(new RequestListener<Drawable>() {
                        @Override
                        public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                            return false;
                        }

                        @Override
                        public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                            return false;
                        }
                    }).into(circleImageView);
                }else {

                }

                mUserRef.child("role").addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        String srole = dataSnapshot.getValue().toString();


                        preferenceManager.simpanRole(srole);
                        setdashbourUI(preferenceManager.ambilRole());

                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

您可以查看HERE !!

的完整实施代码

答案 1 :(得分:0)

此片段

User user = dataSnapshot.getValue(User.class);

尝试更改为此

User user = dataSnapshot.toObject(User.class);

开始使用

private DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();