リサイクラービューで私のイベントをタイムスタンプで取得したいと思います。 私のFirebaseにはいくつかのイベントがあり、長いタイムスタンプ(年+ "+月+" "+日)があり、最も古いイベントがリストの上にありますが、方法Query lastEventQuery = mEventsDatabase.child(list_event_id).orderByChild("Timestamp")
は何も注文しません。質問はFirebaseの子供を注文していません
Firebase Structure: FIREBASE --> Events --> exampleOne ---> Timestamp: 19000101
--> exampleTwo ---> Timestamp: 20500131
--> exampleThree ---> Timestamp: 20301101
--> exampleFour ---> Timestamp: 20501210
注文するリサイクルビューのフラグメント。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mMainView2 = inflater.inflate(R.layout.fragment_requests, container, false);
mEventsDatabase = FirebaseDatabase.getInstance().getReference().child("Events");
mEventsDatabase.keepSynced(true);
mLayoutManager = new LinearLayoutManager(getContext());
create_event_btn = (Button) mMainView2.findViewById(R.id.create_btn);
mEventList = (RecyclerView) mMainV
iew2.findViewById(R.id.event_list);
mEventList.setHasFixedSize(true);
mEventList.setLayoutManager(mLayoutManager);
create_event_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), Create_EventActivity.class);
startActivity(intent);
}
});
// Inflate the layout for this fragment
return mMainView2;
}
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Events, EventsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Events, EventsViewHolder>(
Events.class,
R.layout.event_single_layout,
EventsViewHolder.class,
mEventsDatabase
) {
@Override
protected void populateViewHolder(final EventsViewHolder eventsViewHolder, final Events events, int i) {
final String list_event_id = getRef(i).getKey();
Query lastEventQuery = mEventsDatabase.child(list_event_id).orderByChild("Timestamp");
lastEventQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!dataSnapshot.exists()) {
return;
}
...
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
};
mEventList.setAdapter(firebaseRecyclerAdapter);
}
public static class EventsViewHolder extends RecyclerView.ViewHolder {
View mView2;
public EventsViewHolder(View itemView2) {
super(itemView2);
mView2 = itemView2;
}
public void setEventName(String name) {
TextView eventName = (TextView) mView2.findViewById(R.id.event_name);
eventName.setText(name);
}
public void setEventZeit(String time) {
TextView eventTime = (TextView) mView2.findViewById(R.id.event_time);
eventTime.setText(time);
}
public void setEventLocation(String location) {
TextView eventTime = (TextView) mView2.findViewById(R.id.event_location);
eventTime.setText(location);
}
public void setEventPreis(String price) {
TextView eventPrice = (TextView) mView2.findViewById(R.id.event_price);
eventPrice.setText(price);
}
}
私はこの問題のために重要ではない部分を切り捨てるので、{}が間違っているかもしれません。この問題を解決するには
'Events'の子を反復しているかどうか知っていますか?私には、あなたが実際に子供たちを突き抜けていないように見えますが、あなたはちょうど1人の子供を見ています。 –
データベースルールでインデックスを追加しましたか? –
何が正しく動作していないのですか?あなたがリスナーの中に存在していない場合、あなたは言った。 –