Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit afbab20

Browse files
authored
Fixed AppIndexingUpdateService race condition (firebase#149)
2 parents 9ab9b89 + e8ba432 commit afbab20

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

appindexing/app/src/main/java/com/google/firebase/example/appindexing/AppIndexingUpdateService.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import androidx.annotation.NonNull;
66
import androidx.core.app.JobIntentService;
77

8+
import com.google.android.gms.tasks.Tasks;
89
import com.google.firebase.appindexing.FirebaseAppIndex;
910
import com.google.firebase.appindexing.Indexable;
1011
import com.google.firebase.appindexing.builders.Indexables;
@@ -15,6 +16,8 @@
1516
import java.util.Collections;
1617
import java.util.List;
1718

19+
import java.util.concurrent.ExecutionException;
20+
1821
// [START appindexing_update_service]
1922
public class AppIndexingUpdateService extends JobIntentService {
2023

@@ -49,7 +52,13 @@ protected void onHandleWork(@NonNull Intent intent) {
4952
notesArr = indexableNotes.toArray(notesArr);
5053

5154
// batch insert indexable notes into index
52-
FirebaseAppIndex.getInstance().update(notesArr);
55+
try {
56+
Tasks.await(FirebaseAppIndex.getInstance().update(notesArr));
57+
} catch (ExecutionException e) {
58+
// update failed
59+
} catch (InterruptedException e) {
60+
// await was interrupted
61+
}
5362
}
5463
}
5564

appindexing/app/src/main/java/com/google/firebase/example/appindexing/kotlin/AppIndexingUpdateService.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ package com.google.firebase.example.appindexing.kotlin
33
import android.content.Context
44
import android.content.Intent
55
import androidx.core.app.JobIntentService
6+
import com.google.android.gms.tasks.Tasks
67
import com.google.firebase.appindexing.FirebaseAppIndex
78
import com.google.firebase.appindexing.Indexable
89
import com.google.firebase.appindexing.builders.Indexables
910
import com.google.firebase.example.appindexing.model.Recipe
11+
import java.util.concurrent.ExecutionException
1012

1113
// [START appindexing_update_service]
1214
class AppIndexingUpdateService : JobIntentService() {
@@ -43,7 +45,13 @@ class AppIndexingUpdateService : JobIntentService() {
4345
val notesArr: Array<Indexable> = indexableNotes.toTypedArray()
4446

4547
// batch insert indexable notes into index
46-
FirebaseAppIndex.getInstance().update(*notesArr)
48+
try {
49+
Tasks.await(FirebaseAppIndex.getInstance().update(*notesArr))
50+
} catch (e: ExecutionException) {
51+
// update failed
52+
} catch (e: InterruptedException) {
53+
// await was interrupted
54+
}
4755
}
4856
}
4957

0 commit comments

Comments
 (0)