Skip to content

Commit 6ce7880

Browse files
Firestore Bundles (#2398)
1 parent 4de8a91 commit 6ce7880

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+4623
-138
lines changed

firebase-firestore/CHANGELOG.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
1-
# Unreleased
2-
- [fixed] Removed excess validation of null and NaN values in query filters.
3-
This more closely aligns the SDK with the Firestore backend, which has always
4-
accepted null and NaN for all operators, even though this isn't necessarily
5-
useful.
1+
# Unreleased (22.1.0)
2+
- [feature] Added support for Firestore Bundles via
3+
`FirebaseFirestore.loadBundle()` and `FirebaseFirestore.getNamedQuery()`.
4+
Bundles contain pre-packaged data produced with the NodeJS Server SDK and
5+
can be used to populate Firestore's cache without reading documents from
6+
the backend.
7+
8+
# (22.0.2)
69
- [changed] A write to a document that contains FieldValue transforms is no
710
longer split up into two separate operations. This reduces the number of
811
writes the backend performs and allows each WriteBatch to hold 500 writes
912
regardless of how many FieldValue transformations are attached.
1013

14+
# (22.0.1)
15+
- [fixed] Removed excess validation of null and NaN values in query filters.
16+
This more closely aligns the SDK with the Firestore backend, which has always
17+
accepted null and NaN for all operators, even though this isn't necessarily
18+
useful.
19+
1120
# (22.0.0)
1221
- [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting.
1322
Any timestamps in Firestore documents are now returned as `Timestamps`. To

firebase-firestore/api.txt

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,10 @@ package com.google.firebase.firestore {
146146
method @NonNull public com.google.firebase.firestore.FirebaseFirestoreSettings getFirestoreSettings();
147147
method @NonNull public static com.google.firebase.firestore.FirebaseFirestore getInstance();
148148
method @NonNull public static com.google.firebase.firestore.FirebaseFirestore getInstance(@NonNull com.google.firebase.FirebaseApp);
149+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.Query> getNamedQuery(@NonNull String);
150+
method @NonNull public com.google.firebase.firestore.LoadBundleTask loadBundle(@NonNull java.io.InputStream);
151+
method @NonNull public com.google.firebase.firestore.LoadBundleTask loadBundle(@NonNull byte[]);
152+
method @NonNull public com.google.firebase.firestore.LoadBundleTask loadBundle(@NonNull java.nio.ByteBuffer);
149153
method @NonNull public com.google.android.gms.tasks.Task<java.lang.Void> runBatch(@NonNull com.google.firebase.firestore.WriteBatch.Function);
150154
method @NonNull public <TResult> com.google.android.gms.tasks.Task<TResult> runTransaction(@NonNull com.google.firebase.firestore.Transaction.Function<TResult>);
151155
method public void setFirestoreSettings(@NonNull com.google.firebase.firestore.FirebaseFirestoreSettings);
@@ -219,11 +223,60 @@ package com.google.firebase.firestore {
219223
method public void remove();
220224
}
221225

226+
public class LoadBundleTask extends com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> {
227+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnCanceledListener(@NonNull com.google.android.gms.tasks.OnCanceledListener);
228+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnCanceledListener(@NonNull java.util.concurrent.Executor, @NonNull com.google.android.gms.tasks.OnCanceledListener);
229+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnCanceledListener(@NonNull android.app.Activity, @NonNull com.google.android.gms.tasks.OnCanceledListener);
230+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnCompleteListener(@NonNull com.google.android.gms.tasks.OnCompleteListener<com.google.firebase.firestore.LoadBundleTaskProgress>);
231+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnCompleteListener(@NonNull java.util.concurrent.Executor, @NonNull com.google.android.gms.tasks.OnCompleteListener<com.google.firebase.firestore.LoadBundleTaskProgress>);
232+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnCompleteListener(@NonNull android.app.Activity, @NonNull com.google.android.gms.tasks.OnCompleteListener<com.google.firebase.firestore.LoadBundleTaskProgress>);
233+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnFailureListener(@NonNull com.google.android.gms.tasks.OnFailureListener);
234+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnFailureListener(@NonNull java.util.concurrent.Executor, @NonNull com.google.android.gms.tasks.OnFailureListener);
235+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnFailureListener(@NonNull android.app.Activity, @NonNull com.google.android.gms.tasks.OnFailureListener);
236+
method @NonNull public com.google.firebase.firestore.LoadBundleTask addOnProgressListener(@NonNull com.google.firebase.firestore.OnProgressListener<com.google.firebase.firestore.LoadBundleTaskProgress>);
237+
method @NonNull public com.google.firebase.firestore.LoadBundleTask addOnProgressListener(@NonNull java.util.concurrent.Executor, @NonNull com.google.firebase.firestore.OnProgressListener<com.google.firebase.firestore.LoadBundleTaskProgress>);
238+
method @NonNull public com.google.firebase.firestore.LoadBundleTask addOnProgressListener(@NonNull android.app.Activity, @NonNull com.google.firebase.firestore.OnProgressListener<com.google.firebase.firestore.LoadBundleTaskProgress>);
239+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnSuccessListener(@NonNull com.google.android.gms.tasks.OnSuccessListener<? super com.google.firebase.firestore.LoadBundleTaskProgress>);
240+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnSuccessListener(@NonNull java.util.concurrent.Executor, @NonNull com.google.android.gms.tasks.OnSuccessListener<? super com.google.firebase.firestore.LoadBundleTaskProgress>);
241+
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnSuccessListener(@NonNull android.app.Activity, @NonNull com.google.android.gms.tasks.OnSuccessListener<? super com.google.firebase.firestore.LoadBundleTaskProgress>);
242+
method @NonNull public <TContinuationResult> com.google.android.gms.tasks.Task<TContinuationResult> continueWith(@NonNull com.google.android.gms.tasks.Continuation<com.google.firebase.firestore.LoadBundleTaskProgress,TContinuationResult>);
243+
method @NonNull public <TContinuationResult> com.google.android.gms.tasks.Task<TContinuationResult> continueWith(@NonNull java.util.concurrent.Executor, @NonNull com.google.android.gms.tasks.Continuation<com.google.firebase.firestore.LoadBundleTaskProgress,TContinuationResult>);
244+
method @NonNull public <TContinuationResult> com.google.android.gms.tasks.Task<TContinuationResult> continueWithTask(@NonNull com.google.android.gms.tasks.Continuation<com.google.firebase.firestore.LoadBundleTaskProgress,com.google.android.gms.tasks.Task<TContinuationResult>>);
245+
method @NonNull public <TContinuationResult> com.google.android.gms.tasks.Task<TContinuationResult> continueWithTask(@NonNull java.util.concurrent.Executor, @NonNull com.google.android.gms.tasks.Continuation<com.google.firebase.firestore.LoadBundleTaskProgress,com.google.android.gms.tasks.Task<TContinuationResult>>);
246+
method @Nullable public Exception getException();
247+
method @NonNull public com.google.firebase.firestore.LoadBundleTaskProgress getResult();
248+
method @NonNull public <X extends java.lang.Throwable> com.google.firebase.firestore.LoadBundleTaskProgress getResult(@NonNull Class<X>) throws X;
249+
method public boolean isCanceled();
250+
method public boolean isComplete();
251+
method public boolean isSuccessful();
252+
method @NonNull public <TContinuationResult> com.google.android.gms.tasks.Task<TContinuationResult> onSuccessTask(@NonNull com.google.android.gms.tasks.SuccessContinuation<com.google.firebase.firestore.LoadBundleTaskProgress,TContinuationResult>);
253+
method @NonNull public <TContinuationResult> com.google.android.gms.tasks.Task<TContinuationResult> onSuccessTask(@NonNull java.util.concurrent.Executor, @NonNull com.google.android.gms.tasks.SuccessContinuation<com.google.firebase.firestore.LoadBundleTaskProgress,TContinuationResult>);
254+
}
255+
256+
public final class LoadBundleTaskProgress {
257+
method public long getBytesLoaded();
258+
method public int getDocumentsLoaded();
259+
method @Nullable public Exception getException();
260+
method @NonNull public com.google.firebase.firestore.LoadBundleTaskProgress.TaskState getTaskState();
261+
method public long getTotalBytes();
262+
method public int getTotalDocuments();
263+
}
264+
265+
public enum LoadBundleTaskProgress.TaskState {
266+
enum_constant public static final com.google.firebase.firestore.LoadBundleTaskProgress.TaskState ERROR;
267+
enum_constant public static final com.google.firebase.firestore.LoadBundleTaskProgress.TaskState RUNNING;
268+
enum_constant public static final com.google.firebase.firestore.LoadBundleTaskProgress.TaskState SUCCESS;
269+
}
270+
222271
public enum MetadataChanges {
223272
enum_constant public static final com.google.firebase.firestore.MetadataChanges EXCLUDE;
224273
enum_constant public static final com.google.firebase.firestore.MetadataChanges INCLUDE;
225274
}
226275

276+
public interface OnProgressListener<ProgressT> {
277+
method public void onProgress(@NonNull ProgressT);
278+
}
279+
227280
@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.FIELD}) public @interface PropertyName {
228281
method public abstract String value();
229282
}

0 commit comments

Comments
 (0)