成功执行所有读取操作后接收通知

时间:2018-01-30 05:19:47

标签: android firebase google-cloud-firestore

我对Firestore的某些功能有疑问。我试图占用从Firestore数据库通过多个读取操作获得的数据数组。当所有数据成功读取并存储在我的阵列中时,有没有办法通知我?这尤其是一个问题,因为读取操作没有按照它们被调用的顺序完成。以下是一些说明我问题的代码:

/* My array to insert the data read from the Firestore database */
String[] my_array = new String[3];

/* A method that will be called to initialize our array */
private void initArray(String doc_one, String doc_two, String doc_three) {
    initSingleIndex(0, doc_one);
    initSingleIndex(1, doc_two);
    initSingleIndex(2, doc_three);
}

private void initSingleIndex(final int index, String doc_id) {
    /* We perform our read operation here */
    question_ref.document(doc_id).get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) {
            my_array[index] = documentSnapshot.getString("some_field");
        }
    });
}

我目前的实现是保留一个全局计数器,用于跟踪成功执行的读取操作的数量。我也想知道是否可以同时触发onSuccess()回调,因为这会导致数据损坏(即同时递增值的经典问题)。

任何帮助或建议都将不胜感激。

0 个答案:

没有答案