Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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
startAfter未在Firestore android中工作_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

startAfter未在Firestore android中工作

startAfter未在Firestore android中工作,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,我创建了一个类似测验的应用程序,其中10个问题一次提取。如果用户得到10分中的8分。然后我回答接下来的10个问题。但是开始之后总是给出相同的响应 val questionCollectionRef = db.collection("questionCollection") ///.whereArrayContains("tags", tagName) .orderBy("questionID", Query.Direction.DESCENDING); val i

我创建了一个类似测验的应用程序,其中10个问题一次提取。如果用户得到10分中的8分。然后我回答接下来的10个问题。但是开始之后总是给出相同的响应

val questionCollectionRef = db.collection("questionCollection")
        ///.whereArrayContains("tags", tagName)
        .orderBy("questionID", Query.Direction.DESCENDING);
val id = SharedPrefs(this@McqActivity).read(OLD_DOCUMENT_ID, "")

if(id.isNotEmpty()){
    //questionCollectionRef.whereLessThan("questionID",id) //also tried for whereGreaterThan
    questionCollectionRef.startAfter(id);
    Log.v("startAfter","start After : " + id + "" );
}
questionCollectionRef.limit(10).get()
        //fixme  also orderBy date So user can see latest question first
        .addOnSuccessListener { querySnapshot ->
            if (querySnapshot.isEmpty()) {
                Log.d(TAG, "onSuccess: LIST EMPTY")
            } else {
                val questionList = querySnapshot.toObjects(QuestionBO::class.java)

                questionList.forEach { questionItem ->
                    resultList.add(ResultBO(questionItem))
                }

                if (resultList.size > 0) {
                    refreshQuestionWithData()
                }
            }
        }
        .addOnFailureListener { exception ->
            exception.printStackTrace()
        }
此代码是在活动中编写的。在得分超过8分后


我再次打开相同的活动,调用了
questionCollectionRef.startAfter
,但仍然是活动中显示的相同问题当调用
startAfter()
(或任何其他查询构建方法)时,它返回一个新的查询对象。因此,您需要保留对该对象的引用:


我还将
questionCollectionRef
重命名为
questionCollectionQuery
,因为
orderBy
之后的类型、
startAfter
limit
是一个查询。

@AlexMamo查看编辑。。下次打开活动时,它称为startAfter方法。但同样的记录显示
var questionCollectionQuery = db.collection("questionCollection")
        .orderBy("questionID", Query.Direction.DESCENDING);

val id = SharedPrefs(this@McqActivity).read(OLD_DOCUMENT_ID, "")
if(id.isNotEmpty()){
    questionCollectionQuery = questionCollectionQuery.startAfter(id);
    Log.v("startAfter","start After : " + id + "" );
}

questionCollectionQuery.limit(10).get()...