Skip to content

Commit 1e24541

Browse files
Expose Firestore Bundles (#2369)
1 parent 8efdba2 commit 1e24541

28 files changed

+888
-227
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: 38 additions & 1 deletion
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,8 +223,37 @@ 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+
222256
public final class LoadBundleTaskProgress {
223-
ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public LoadBundleTaskProgress(int, int, long, long, @Nullable Exception, @NonNull com.google.firebase.firestore.LoadBundleTaskProgress.TaskState);
224257
method public long getBytesLoaded();
225258
method public int getDocumentsLoaded();
226259
method @Nullable public Exception getException();
@@ -240,6 +273,10 @@ package com.google.firebase.firestore {
240273
enum_constant public static final com.google.firebase.firestore.MetadataChanges INCLUDE;
241274
}
242275

276+
public interface OnProgressListener<ProgressT> {
277+
method public void onProgress(@NonNull ProgressT);
278+
}
279+
243280
@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 {
244281
method public abstract String value();
245282
}

0 commit comments

Comments
 (0)