Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用onCreateView的android片段,但无法添加firebase_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

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

Java 使用onCreateView的android片段,但无法添加firebase,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我已经在我的应用程序中创建了一个片段,我正在尝试将firebase添加到此片段中。但是由于它使用的是onCreateView,因此它在此调用了一个错误 public class ProfileFragment extends Fragment { private DatabaseReference mUserDatabase; private FirebaseUser mCurrentUser; @Nullable @Override public View onCreateView(Lay

我已经在我的应用程序中创建了一个片段,我正在尝试将firebase添加到此片段中。但是由于它使用的是onCreateView,因此它在此调用了一个错误

public class ProfileFragment extends Fragment {

private DatabaseReference mUserDatabase;
private FirebaseUser mCurrentUser;

@Nullable
@Override
public 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
@Override
public 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;
    });}}

返回视图错误

只需在return语句之前移动mCurrentUser=FirebaseAuth.getInstance.getCurrentUser行

在onCreateView方法中返回station之前移动下行

 mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
return语句之后的任何内容都是不可访问的,正如error语句所述。

更新此

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_profile, container, false);
    mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
}

让onActivityCreated方法处理其他作业

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

另外,要注意返回视图;应该是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) {

        });
}

我添加了这个,它一开始工作,但现在似乎导致了一个新的错误代码更新。
@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) {

        });
}