为了账号安全,请及时绑定邮箱和手机立即绑定

使用onCreateView但无法添加firebase的android片段

使用onCreateView但无法添加firebase的android片段

POPMUISE 2021-08-25 16:22:27
我在我的应用程序中创建了一个片段,我正在尝试将 firebase 添加到这个片段中。但是由于它使用 onCreateView 的面孔,它正在调用此错误。public class ProfileFragment extends Fragment {private DatabaseReference mUserDatabase;private FirebaseUser mCurrentUser;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    return inflater.inflate(R.layout.fragment_profile, container, false);    mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();}在 mCurrentUser = FirebaseAuth.getInstance().getCurrentUser(); 我收到错误 unreachable 语句 有什么方法可以让我仍然使用片段进行此活动吗?    @Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    final View view =  inflater.inflate(R.layout.fragment_profile, container, false);    mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();    String current_uid = Objects.requireNonNull(mCurrentUser).getUid();    mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(current_uid);    ValueEventListener valueEventListener = mUserDatabase.addValueEventListener(new ValueEventListener() {        @Override        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {            String name = dataSnapshot.child("name").getValue().toString();            String image = dataSnapshot.child("image").getValue().toString();            String status = dataSnapshot.child("status").getValue().toString();            String thumb_image = dataSnapshot.child("thumb_image").getValue().toString();        }        @Override        public void onCancelled(@NonNull DatabaseError databaseError) {        }    return view;    });}}返回视图错误;
查看完整描述

3 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

onCreateView()方法中的return 语句之前移动下面的行。

 mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();

return 语句之后的任何内容都无法访问,如错误语句所述。


查看完整回答
反对 回复 2021-08-25
?
哔哔one

TA贡献1854条经验 获得超8个赞

让onActivityCreated()方法处理额外的工作。


ValueEventListener是 的内部类DatabaseReference,因此,您不需要在实例化它之前创建对象。因此,删除该行。


另外,请注意,return view;应该是您的onCreateView(). 确保在关闭它之前你有 return 语句。


现在这样做。之后onCreateView(),创建另一个副本并粘贴以下代码。


@Override

    public void onActivityCreated(Bundle savedInstanceState) {

        super.onActivityCreated(savedInstanceState);




   mUserDatabase.addValueEventListener(new ValueEventListener() {

        @Override

        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


            String name = dataSnapshot.child("name").getValue().toString();

            String image = dataSnapshot.child("image").getValue().toString();

            String status = dataSnapshot.child("status").getValue().toString();

            String thumb_image = 

             dataSnapshot.child("thumb_image").getValue().toString();


        }


        @Override

        public void onCancelled(@NonNull DatabaseError databaseError) {


        });

}


查看完整回答
反对 回复 2021-08-25
  • 3 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信