Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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 从FirestoreRecyclerView向recyclerview添加多个项目_Java_Android_Firebase_Android Recyclerview_Google Cloud Firestore - Fatal编程技术网

Java 从FirestoreRecyclerView向recyclerview添加多个项目

Java 从FirestoreRecyclerView向recyclerview添加多个项目,java,android,firebase,android-recyclerview,google-cloud-firestore,Java,Android,Firebase,Android Recyclerview,Google Cloud Firestore,我将我的应用程序连接到Firestore,我有一个名为timey的字符串,该字符串是一个日期,它被拾取(与方式无关),并与Firestore文档中的字符串timey进行比较 我成功地使应用程序将Firestore输出显示为文本视图,但如果我有两个日期相同的条目,它总是选择一个,而忘记另一个。因此,我决定尝试使用FirebaseRecyclerAdapter显示数据,该适配器通常显示“单一日期条目”,但只要我选择一个包含两个条目的日期,应用程序就会崩溃。这是源代码,你知道如何让RecyclerVi

我将我的应用程序连接到Firestore,我有一个名为timey的字符串,该字符串是一个日期,它被拾取(与方式无关),并与Firestore文档中的字符串timey进行比较

我成功地使应用程序将Firestore输出显示为
文本视图
,但如果我有两个日期相同的条目,它总是选择一个,而忘记另一个。因此,我决定尝试使用
FirebaseRecyclerAdapter
显示数据,该适配器通常显示“单一日期条目”,但只要我选择一个包含两个条目的日期,应用程序就会崩溃。这是源代码,你知道如何让RecyclerView显示几十个相同日期的条目,并将它们作为单独的条目放在一个RecyclerView中吗

。。。 passedArg是从不同布局传递的日期

static String passedArg;
RecyclerView reserveList;
private static final CollectionReference reservationCollection = FirebaseFirestore.getInstance().collection("reservations");
private static Query reservationsQuery;

private FirebaseFirestore db;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_page);
    textView = findViewById(R.id.textView);
    textView2 = findViewById(R.id.textView2);
    textView3 = findViewById(R.id.textView3);
    passedArg = getIntent().getExtras().getString(MESSAGE_KEY);
    textView.setText(passedArg);
    reservationsQuery = reservationCollection.whereEqualTo("timey", passedArg);
    RecyclerView reserveList = (RecyclerView) findViewById(R.id.reserveList);
    reserveList.setLayoutManager(new LinearLayoutManager (this));
    FirestoreRecyclerOptions<Reservations> options =
            new FirestoreRecyclerOptions.Builder<Reservations>()
                    .setQuery(reservationsQuery, Reservations.class)
                    .setLifecycleOwner(this)
                    .build();
    FirestoreRecyclerAdapter<Reservations, ReservationsHolder> adapter = new FirestoreRecyclerAdapter<Reservations, ReservationsHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull ReservationsHolder holder, int position, @NonNull Reservations model) {
            holder.setName(model.getName());
            holder.setTime(model.getTime());
            holder.setCountry(model.getCountry());
            }


        @NonNull
        @Override
        public ReservationsHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            return new ReservationsHolder(LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.reservations, parent, false));
        }
    };
        reserveList.setAdapter(adapter);

您将收到以下错误:

java.lang.RuntimeException: Could not deserialize object. Failed to convert value of type java.util.Date to String (found in field 'time')
因为在Firestore数据库中,您有一个名为
time
的属性,它的类型是
Date
,而不是String。因此,要解决这个问题,请参阅以及如何正确地解决它

如果您感兴趣,是如何使用
FirestoreRecyclerAdapter
从云Firestore数据库中正确检索数据并将其显示在
RecyclerView

java.lang.RuntimeException: Could not deserialize object. Failed to convert value of type java.util.Date to String (found in field 'time')