Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Android 如何使用FirebaseUi在片段中调用Firestore数据库?_Android_Firebase_Google Cloud Firestore_Firebaseui - Fatal编程技术网

Android 如何使用FirebaseUi在片段中调用Firestore数据库?

Android 如何使用FirebaseUi在片段中调用Firestore数据库?,android,firebase,google-cloud-firestore,firebaseui,Android,Firebase,Google Cloud Firestore,Firebaseui,因此,我将使用片段中带有FirebaseUi的Recycler视图从Firestore调用我的数据库,但每次我打开应用程序时,应用程序都会停止工作 这是我的片段,包含Firestore数据库 public class Fragment_HomeSpot extends Fragment { private FirebaseFirestore db = FirebaseFirestore.getInstance(); private CollectionReference spotRef = db

因此,我将使用片段中带有FirebaseUi的Recycler视图从Firestore调用我的数据库,但每次我打开应用程序时,应用程序都会停止工作

这是我的片段,包含Firestore数据库

public class Fragment_HomeSpot extends Fragment {
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private CollectionReference spotRef = db.collection("Spot");
private SpotAdapter adapter;

@SuppressLint("ResourceType")

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.id.recyclerview_layout,container,false);
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    setUpRecyclerView();
}


private void setUpRecyclerView() {

    Query query = spotRef.orderBy("",Query.Direction.DESCENDING);

    FirestoreRecyclerOptions<Spot> options = new FirestoreRecyclerOptions.Builder<Spot>()
            .setQuery(query, Spot.class)
            .build();

    adapter = new SpotAdapter(options);

    RecyclerView recyclerView = Objects.requireNonNull(getView()).findViewById(R.id.recyclerview_layout);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    recyclerView.setAdapter(adapter);
}

@Override
public void onStart() {
    super.onStart();
    adapter.startListening();
}

@Override
public void onStop() {
    super.onStop();
    adapter.stopListening();
}
}
公共类片段\u主点扩展片段{
私有FirebaseFirestore db=FirebaseFirestore.getInstance();
私人收藏参考spotRef=db.collection(“Spot”);
专用点适配器;
@SuppressLint(“资源类型”)
@可空
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
返回充气机。充气(R.id.recyclerview_布局,容器,假);
}
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setUpRecyclerView();
}
私有void setUpRecyclerView(){
Query Query=spotRef.orderBy(“”,Query.Direction.DESCENDING);
FirestoreRecyclerOptions选项=新建FirestoreRecyclerOptions.Builder()
.setQuery(查询,Spot.class)
.build();
适配器=新的SpotAdapter(选项);
RecyclerView RecyclerView=Objects.requireNonNull(getView()).findViewById(R.id.RecyclerView\u布局);
recyclerView.setHasFixedSize(true);
setLayoutManager(新的LinearLayoutManager(getActivity());
recyclerView.setAdapter(适配器);
}
@凌驾
public void onStart(){
super.onStart();
adapter.startListening();
}
@凌驾
公共void onStop(){
super.onStop();
adapter.stopListening();
}
}
onCreate()
发生在
onCreateView()
之前,因此当您在
setUpRecyclerView()
中调用
getView()
时,返回
null
,您还没有扩展视图

相反,您应该将
setUpRecyclerView()
方法放在
onViewCreated()
中,此时
getView()
将返回在
onCreateView()中膨胀的视图:


这就是
onCreateView()
所做的-因此在该方法中调用
inflate
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    setUpRecyclerView();
}