Skip to content

Expose Firestore Bundles #2369

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 34 commits into from
Feb 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
52e0691
Add bundle package
schmidt-sebastian Jan 15, 2021
b11230b
Comments
schmidt-sebastian Jan 15, 2021
ab20252
Package Info, build fix
schmidt-sebastian Jan 15, 2021
f96ed35
Formatting
schmidt-sebastian Jan 15, 2021
3bbf997
Add BundleReader
schmidt-sebastian Jan 17, 2021
0c6cde1
Merge
schmidt-sebastian Jan 19, 2021
8ec4de0
Add LocalStore implementation for Bundles
schmidt-sebastian Jan 19, 2021
8bbe51a
Format
schmidt-sebastian Jan 19, 2021
aa8e178
Implement BundleLoader
schmidt-sebastian Jan 20, 2021
c5a0912
Merge branch 'mrschmidt/bundle/master' into mrschmidt/bundle/reader
schmidt-sebastian Jan 20, 2021
bf05d41
Merge branch 'mrschmidt/bundle/reader' into mrschmidt/bundle/localstore
schmidt-sebastian Jan 20, 2021
910483f
Merge branch 'mrschmidt/bundle/localstore' into mrschmidt/bundle/loader
schmidt-sebastian Jan 20, 2021
7dfd805
Comments
schmidt-sebastian Jan 21, 2021
9b03934
Support Java 7
schmidt-sebastian Jan 21, 2021
0dd9887
Format
schmidt-sebastian Jan 21, 2021
96f2d36
Update BundleReader.java
schmidt-sebastian Jan 22, 2021
f7f7c62
Merge branch 'mrschmidt/bundle/reader' into mrschmidt/bundle/localstore
schmidt-sebastian Jan 22, 2021
726d4b7
Merge branch 'mrschmidt/bundle/localstore' into mrschmidt/bundle/loader
schmidt-sebastian Jan 22, 2021
cdf9302
Count bytes correctly
schmidt-sebastian Jan 26, 2021
17ba69d
Merge branch 'mrschmidt/bundle/reader' of github.com:firebase/firebas…
schmidt-sebastian Jan 26, 2021
f384640
Merge branch 'mrschmidt/bundle/reader' into mrschmidt/bundle/loader
schmidt-sebastian Jan 26, 2021
68910c3
Merge branch 'mrschmidt/bundle/reader' into mrschmidt/bundle/localstore
schmidt-sebastian Jan 26, 2021
b1f931c
Merge branch 'mrschmidt/bundle/master' into mrschmidt/bundle/localstore
schmidt-sebastian Jan 26, 2021
a9e83fb
Merge branch 'mrschmidt/bundle/localstore' into mrschmidt/bundle/loader
schmidt-sebastian Jan 26, 2021
825711d
Merge
schmidt-sebastian Jan 26, 2021
fd696d2
Update API information
schmidt-sebastian Jan 27, 2021
86d8db5
Update with changes from latest PR
schmidt-sebastian Jan 27, 2021
fb02a72
Merge branch 'mrschmidt/bundle/master' into mrschmidt/bundle/loader
schmidt-sebastian Jan 27, 2021
b9d0318
Update tests
schmidt-sebastian Jan 27, 2021
6571240
Expose Firestore Bundles
schmidt-sebastian Jan 27, 2021
11936cc
Add ReadTime test
schmidt-sebastian Jan 28, 2021
264dd8a
Review
schmidt-sebastian Jan 29, 2021
e5c8512
Merge
schmidt-sebastian Feb 1, 2021
f9f0cf5
Merge
schmidt-sebastian Feb 1, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions firebase-firestore/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
# Unreleased
- [fixed] Removed excess validation of null and NaN values in query filters.
This more closely aligns the SDK with the Firestore backend, which has always
accepted null and NaN for all operators, even though this isn't necessarily
useful.
# Unreleased (22.1.0)
- [feature] Added support for Firestore Bundles via
`FirebaseFirestore.loadBundle()` and `FirebaseFirestore.getNamedQuery()`.
Bundles contain pre-packaged data produced with the NodeJS Server SDK and
can be used to populate Firestore's cache without reading documents from
the backend.

# (22.0.2)
- [changed] A write to a document that contains FieldValue transforms is no
longer split up into two separate operations. This reduces the number of
writes the backend performs and allows each WriteBatch to hold 500 writes
regardless of how many FieldValue transformations are attached.

# (22.0.1)
- [fixed] Removed excess validation of null and NaN values in query filters.
This more closely aligns the SDK with the Firestore backend, which has always
accepted null and NaN for all operators, even though this isn't necessarily
useful.

# (22.0.0)
- [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting.
Any timestamps in Firestore documents are now returned as `Timestamps`. To
Expand Down
39 changes: 38 additions & 1 deletion firebase-firestore/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,10 @@ package com.google.firebase.firestore {
method @NonNull public com.google.firebase.firestore.FirebaseFirestoreSettings getFirestoreSettings();
method @NonNull public static com.google.firebase.firestore.FirebaseFirestore getInstance();
method @NonNull public static com.google.firebase.firestore.FirebaseFirestore getInstance(@NonNull com.google.firebase.FirebaseApp);
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.Query> getNamedQuery(@NonNull String);
method @NonNull public com.google.firebase.firestore.LoadBundleTask loadBundle(@NonNull java.io.InputStream);
method @NonNull public com.google.firebase.firestore.LoadBundleTask loadBundle(@NonNull byte[]);
method @NonNull public com.google.firebase.firestore.LoadBundleTask loadBundle(@NonNull java.nio.ByteBuffer);
method @NonNull public com.google.android.gms.tasks.Task<java.lang.Void> runBatch(@NonNull com.google.firebase.firestore.WriteBatch.Function);
method @NonNull public <TResult> com.google.android.gms.tasks.Task<TResult> runTransaction(@NonNull com.google.firebase.firestore.Transaction.Function<TResult>);
method public void setFirestoreSettings(@NonNull com.google.firebase.firestore.FirebaseFirestoreSettings);
Expand Down Expand Up @@ -219,8 +223,37 @@ package com.google.firebase.firestore {
method public void remove();
}

public class LoadBundleTask extends com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> {
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnCanceledListener(@NonNull com.google.android.gms.tasks.OnCanceledListener);
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);
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);
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>);
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>);
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>);
method @NonNull public com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress> addOnFailureListener(@NonNull com.google.android.gms.tasks.OnFailureListener);
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);
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);
method @NonNull public com.google.firebase.firestore.LoadBundleTask addOnProgressListener(@NonNull com.google.firebase.firestore.OnProgressListener<com.google.firebase.firestore.LoadBundleTaskProgress>);
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>);
method @NonNull public com.google.firebase.firestore.LoadBundleTask addOnProgressListener(@NonNull android.app.Activity, @NonNull com.google.firebase.firestore.OnProgressListener<com.google.firebase.firestore.LoadBundleTaskProgress>);
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>);
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>);
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>);
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>);
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>);
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>>);
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>>);
method @Nullable public Exception getException();
method @NonNull public com.google.firebase.firestore.LoadBundleTaskProgress getResult();
method @NonNull public <X extends java.lang.Throwable> com.google.firebase.firestore.LoadBundleTaskProgress getResult(@NonNull Class<X>) throws X;
method public boolean isCanceled();
method public boolean isComplete();
method public boolean isSuccessful();
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>);
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>);
}

public final class LoadBundleTaskProgress {
ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public LoadBundleTaskProgress(int, int, long, long, @Nullable Exception, @NonNull com.google.firebase.firestore.LoadBundleTaskProgress.TaskState);
method public long getBytesLoaded();
method public int getDocumentsLoaded();
method @Nullable public Exception getException();
Expand All @@ -240,6 +273,10 @@ package com.google.firebase.firestore {
enum_constant public static final com.google.firebase.firestore.MetadataChanges INCLUDE;
}

public interface OnProgressListener<ProgressT> {
method public void onProgress(@NonNull ProgressT);
}

@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 {
method public abstract String value();
}
Expand Down
Loading