Skip to content

Commit 17896b8

Browse files
committed
Realtime API
1 parent e68a01f commit 17896b8

File tree

4 files changed

+62
-98
lines changed

4 files changed

+62
-98
lines changed

firebase-firestore/api.txt

Lines changed: 49 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ package com.google.firebase.firestore {
211211
method public com.google.firebase.firestore.LoadBundleTask loadBundle(java.io.InputStream);
212212
method public com.google.firebase.firestore.LoadBundleTask loadBundle(java.nio.ByteBuffer);
213213
method public com.google.firebase.firestore.PipelineSource pipeline();
214+
method public com.google.firebase.firestore.RealtimePipelineSource realtimePipeline();
214215
method public com.google.android.gms.tasks.Task<java.lang.Void!> runBatch(com.google.firebase.firestore.WriteBatch.Function);
215216
method public <TResult> com.google.android.gms.tasks.Task<TResult!> runTransaction(com.google.firebase.firestore.Transaction.Function<TResult!>);
216217
method public <TResult> com.google.android.gms.tasks.Task<TResult!> runTransaction(com.google.firebase.firestore.TransactionOptions, com.google.firebase.firestore.Transaction.Function<TResult!>);
@@ -317,6 +318,7 @@ package com.google.firebase.firestore {
317318

318319
public interface ListenerRegistration {
319320
method public void remove();
321+
method public default void scope(android.app.Activity);
320322
}
321323

322324
public class LoadBundleTask extends com.google.android.gms.tasks.Task<com.google.firebase.firestore.LoadBundleTaskProgress!> {
@@ -430,7 +432,7 @@ package com.google.firebase.firestore {
430432
method public com.google.firebase.firestore.Pipeline distinct(com.google.firebase.firestore.pipeline.Selectable group, java.lang.Object... additionalGroups);
431433
method public com.google.firebase.firestore.Pipeline distinct(String groupField, java.lang.Object... additionalGroups);
432434
method public com.google.android.gms.tasks.Task<com.google.firebase.firestore.PipelineSnapshot> execute();
433-
method public com.google.android.gms.tasks.Task<com.google.firebase.firestore.PipelineSnapshot> execute(com.google.firebase.firestore.pipeline.RealtimePipelineOptions options);
435+
method public com.google.android.gms.tasks.Task<com.google.firebase.firestore.PipelineSnapshot> execute(com.google.firebase.firestore.pipeline.PipelineOptions options);
434436
method public com.google.firebase.firestore.Pipeline findNearest(com.google.firebase.firestore.pipeline.Field vectorField, com.google.firebase.firestore.VectorValue vectorValue, com.google.firebase.firestore.pipeline.FindNearestStage.DistanceMeasure distanceMeasure);
435437
method public com.google.firebase.firestore.Pipeline findNearest(com.google.firebase.firestore.pipeline.Field vectorField, double[] vectorValue, com.google.firebase.firestore.pipeline.FindNearestStage.DistanceMeasure distanceMeasure);
436438
method public com.google.firebase.firestore.Pipeline findNearest(com.google.firebase.firestore.pipeline.FindNearestStage stage);
@@ -565,16 +567,31 @@ package com.google.firebase.firestore {
565567
}
566568

567569
public final class RealtimePipeline extends com.google.firebase.firestore.AbstractPipeline {
570+
method public com.google.firebase.firestore.ListenerRegistration addSnapshotListener(com.google.firebase.firestore.EventListener<com.google.firebase.firestore.RealtimePipelineSnapshot> listener);
571+
method public com.google.firebase.firestore.ListenerRegistration addSnapshotListener(com.google.firebase.firestore.pipeline.RealtimePipelineOptions options, com.google.firebase.firestore.EventListener<com.google.firebase.firestore.RealtimePipelineSnapshot> listener);
572+
method public com.google.firebase.firestore.ListenerRegistration addSnapshotListener(java.util.concurrent.Executor executor, com.google.firebase.firestore.EventListener<com.google.firebase.firestore.RealtimePipelineSnapshot> listener);
573+
method public com.google.firebase.firestore.ListenerRegistration addSnapshotListener(java.util.concurrent.Executor executor, com.google.firebase.firestore.pipeline.RealtimePipelineOptions options, com.google.firebase.firestore.EventListener<com.google.firebase.firestore.RealtimePipelineSnapshot> listener);
568574
method public com.google.android.gms.tasks.Task<com.google.firebase.firestore.PipelineSnapshot> execute();
569-
method public com.google.android.gms.tasks.Task<com.google.firebase.firestore.PipelineSnapshot> execute(com.google.firebase.firestore.pipeline.PipelineOptions options);
575+
method public com.google.android.gms.tasks.Task<com.google.firebase.firestore.PipelineSnapshot> execute(com.google.firebase.firestore.pipeline.RealtimePipelineOptions options);
570576
method public com.google.firebase.firestore.RealtimePipeline limit(int limit);
571-
method public com.google.firebase.firestore.RealtimePipeline offset(int offset);
572577
method public com.google.firebase.firestore.RealtimePipeline select(com.google.firebase.firestore.pipeline.Selectable selection, java.lang.Object... additionalSelections);
573578
method public com.google.firebase.firestore.RealtimePipeline select(String fieldName, java.lang.Object... additionalSelections);
579+
method public kotlinx.coroutines.flow.Flow<com.google.firebase.firestore.RealtimePipelineSnapshot> snapshots();
580+
method public kotlinx.coroutines.flow.Flow<com.google.firebase.firestore.RealtimePipelineSnapshot> snapshots(com.google.firebase.firestore.pipeline.RealtimePipelineOptions options);
574581
method public com.google.firebase.firestore.RealtimePipeline sort(com.google.firebase.firestore.pipeline.Ordering order, com.google.firebase.firestore.pipeline.Ordering... additionalOrders);
575582
method public com.google.firebase.firestore.RealtimePipeline where(com.google.firebase.firestore.pipeline.BooleanExpr condition);
576583
}
577584

585+
public final class RealtimePipelineSnapshot implements java.lang.Iterable<com.google.firebase.firestore.PipelineResult> kotlin.jvm.internal.markers.KMappedMarker {
586+
method public com.google.firebase.Timestamp? getExecutionTime();
587+
method public com.google.firebase.firestore.SnapshotMetadata getMetadata();
588+
method public java.util.List<com.google.firebase.firestore.PipelineResult> getResults();
589+
method public java.util.Iterator<com.google.firebase.firestore.PipelineResult> iterator();
590+
property public final com.google.firebase.Timestamp? executionTime;
591+
property public final com.google.firebase.firestore.SnapshotMetadata metadata;
592+
property public final java.util.List<com.google.firebase.firestore.PipelineResult> results;
593+
}
594+
578595
public final class RealtimePipelineSource {
579596
method public com.google.firebase.firestore.RealtimePipeline collection(com.google.firebase.firestore.CollectionReference ref);
580597
method public com.google.firebase.firestore.RealtimePipeline collection(com.google.firebase.firestore.pipeline.CollectionSource stage);
@@ -703,8 +720,8 @@ package com.google.firebase.firestore.pipeline {
703720
public abstract class AbstractOptions<T extends com.google.firebase.firestore.pipeline.AbstractOptions<T>> {
704721
method public final T with(String key, boolean value);
705722
method public final T with(String key, com.google.firebase.firestore.pipeline.Field value);
706-
method public final T with(String key, com.google.firebase.firestore.pipeline.GenericOptions value);
707723
method protected final T with(String key, com.google.firebase.firestore.pipeline.InternalOptions value);
724+
method public final T with(String key, com.google.firebase.firestore.pipeline.RawOptions value);
708725
method public final T with(String key, double value);
709726
method protected final T with(String key, error.NonExistentClass value);
710727
method public final T with(String key, String value);
@@ -795,59 +812,6 @@ package com.google.firebase.firestore.pipeline {
795812
method public com.google.firebase.firestore.pipeline.CollectionSource of(String path);
796813
}
797814

798-
public final class ExplainOptions extends com.google.firebase.firestore.pipeline.AbstractOptions<com.google.firebase.firestore.pipeline.ExplainOptions> {
799-
method public error.NonExistentClass withIndexRecommendation(boolean value);
800-
method public error.NonExistentClass withMode(com.google.firebase.firestore.pipeline.ExplainOptions.ExplainMode value);
801-
method public error.NonExistentClass withOutputFormat(com.google.firebase.firestore.pipeline.ExplainOptions.OutputFormat value);
802-
method public error.NonExistentClass withProfiles(com.google.firebase.firestore.pipeline.ExplainOptions.Profiles value);
803-
method public error.NonExistentClass withRedact(boolean value);
804-
method public error.NonExistentClass withVerbosity(com.google.firebase.firestore.pipeline.ExplainOptions.Verbosity value);
805-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.Companion Companion;
806-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions DEFAULT;
807-
}
808-
809-
public static final class ExplainOptions.Companion {
810-
}
811-
812-
public static final class ExplainOptions.ExplainMode {
813-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.ExplainMode ANALYZE;
814-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.ExplainMode.Companion Companion;
815-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.ExplainMode EXECUTE;
816-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.ExplainMode EXPLAIN;
817-
}
818-
819-
public static final class ExplainOptions.ExplainMode.Companion {
820-
}
821-
822-
public static final class ExplainOptions.OutputFormat {
823-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.OutputFormat.Companion Companion;
824-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.OutputFormat JSON;
825-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.OutputFormat STRUCT;
826-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.OutputFormat TEXT;
827-
}
828-
829-
public static final class ExplainOptions.OutputFormat.Companion {
830-
}
831-
832-
public static final class ExplainOptions.Profiles {
833-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.Profiles BYTES_THROUGHPUT;
834-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.Profiles.Companion Companion;
835-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.Profiles LATENCY;
836-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.Profiles RECORDS_COUNT;
837-
}
838-
839-
public static final class ExplainOptions.Profiles.Companion {
840-
}
841-
842-
public static final class ExplainOptions.Verbosity {
843-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.Verbosity.Companion Companion;
844-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.Verbosity EXECUTION_TREE;
845-
field public static final com.google.firebase.firestore.pipeline.ExplainOptions.Verbosity SUMMARY_ONLY;
846-
}
847-
848-
public static final class ExplainOptions.Verbosity.Companion {
849-
}
850-
851815
public abstract class Expr {
852816
method public final com.google.firebase.firestore.pipeline.Expr add(com.google.firebase.firestore.pipeline.Expr second);
853817
method public static final com.google.firebase.firestore.pipeline.Expr add(com.google.firebase.firestore.pipeline.Expr first, com.google.firebase.firestore.pipeline.Expr second);
@@ -1079,6 +1043,7 @@ package com.google.firebase.firestore.pipeline {
10791043
method public static final com.google.firebase.firestore.pipeline.BooleanExpr lte(String fieldName, com.google.firebase.firestore.pipeline.Expr expression);
10801044
method public static final com.google.firebase.firestore.pipeline.BooleanExpr lte(String fieldName, Object value);
10811045
method public static final com.google.firebase.firestore.pipeline.Expr map(java.util.Map<java.lang.String,?> elements);
1046+
method public final com.google.firebase.firestore.pipeline.Expr mapGet(com.google.firebase.firestore.pipeline.Expr keyExpression);
10821047
method public static final com.google.firebase.firestore.pipeline.Expr mapGet(com.google.firebase.firestore.pipeline.Expr mapExpression, com.google.firebase.firestore.pipeline.Expr keyExpression);
10831048
method public static final com.google.firebase.firestore.pipeline.Expr mapGet(com.google.firebase.firestore.pipeline.Expr mapExpression, String key);
10841049
method public final com.google.firebase.firestore.pipeline.Expr mapGet(String key);
@@ -1087,7 +1052,7 @@ package com.google.firebase.firestore.pipeline {
10871052
method public static final com.google.firebase.firestore.pipeline.Expr mapMerge(com.google.firebase.firestore.pipeline.Expr firstMap, com.google.firebase.firestore.pipeline.Expr secondMap, com.google.firebase.firestore.pipeline.Expr... otherMaps);
10881053
method public final com.google.firebase.firestore.pipeline.Expr mapMerge(com.google.firebase.firestore.pipeline.Expr mapExpr, com.google.firebase.firestore.pipeline.Expr... otherMaps);
10891054
method public static final com.google.firebase.firestore.pipeline.Expr mapMerge(String firstMapFieldName, com.google.firebase.firestore.pipeline.Expr secondMap, com.google.firebase.firestore.pipeline.Expr... otherMaps);
1090-
method public final com.google.firebase.firestore.pipeline.Expr mapRemove(com.google.firebase.firestore.pipeline.Expr key);
1055+
method public final com.google.firebase.firestore.pipeline.Expr mapRemove(com.google.firebase.firestore.pipeline.Expr keyExpression);
10911056
method public static final com.google.firebase.firestore.pipeline.Expr mapRemove(com.google.firebase.firestore.pipeline.Expr mapExpr, com.google.firebase.firestore.pipeline.Expr key);
10921057
method public static final com.google.firebase.firestore.pipeline.Expr mapRemove(com.google.firebase.firestore.pipeline.Expr mapExpr, String key);
10931058
method public final com.google.firebase.firestore.pipeline.Expr mapRemove(String key);
@@ -1508,6 +1473,10 @@ package com.google.firebase.firestore.pipeline {
15081473
}
15091474

15101475
public final class ExprWithAlias extends com.google.firebase.firestore.pipeline.Selectable {
1476+
method public String getAlias();
1477+
method public com.google.firebase.firestore.pipeline.Expr getExpr();
1478+
property public String alias;
1479+
property public com.google.firebase.firestore.pipeline.Expr expr;
15111480
}
15121481

15131482
public final class Field extends com.google.firebase.firestore.pipeline.Selectable {
@@ -1549,14 +1518,6 @@ package com.google.firebase.firestore.pipeline {
15491518
public class FunctionExpr extends com.google.firebase.firestore.pipeline.Expr {
15501519
}
15511520

1552-
public final class GenericOptions extends com.google.firebase.firestore.pipeline.AbstractOptions<com.google.firebase.firestore.pipeline.GenericOptions> {
1553-
field public static final com.google.firebase.firestore.pipeline.GenericOptions.Companion Companion;
1554-
field public static final com.google.firebase.firestore.pipeline.GenericOptions DEFAULT;
1555-
}
1556-
1557-
public static final class GenericOptions.Companion {
1558-
}
1559-
15601521
public final class InternalOptions {
15611522
field public static final com.google.firebase.firestore.pipeline.InternalOptions.Companion Companion;
15621523
field public static final com.google.firebase.firestore.pipeline.InternalOptions EMPTY;
@@ -1585,7 +1546,6 @@ package com.google.firebase.firestore.pipeline {
15851546
}
15861547

15871548
public final class PipelineOptions extends com.google.firebase.firestore.pipeline.AbstractOptions<com.google.firebase.firestore.pipeline.PipelineOptions> {
1588-
method public com.google.firebase.firestore.pipeline.PipelineOptions withExplainOptions(com.google.firebase.firestore.pipeline.ExplainOptions options);
15891549
method public com.google.firebase.firestore.pipeline.PipelineOptions withIndexMode(com.google.firebase.firestore.pipeline.PipelineOptions.IndexMode indexMode);
15901550
field public static final com.google.firebase.firestore.pipeline.PipelineOptions.Companion Companion;
15911551
field public static final com.google.firebase.firestore.pipeline.PipelineOptions DEFAULT;
@@ -1602,6 +1562,14 @@ package com.google.firebase.firestore.pipeline {
16021562
public static final class PipelineOptions.IndexMode.Companion {
16031563
}
16041564

1565+
public final class RawOptions extends com.google.firebase.firestore.pipeline.AbstractOptions<com.google.firebase.firestore.pipeline.RawOptions> {
1566+
field public static final com.google.firebase.firestore.pipeline.RawOptions.Companion Companion;
1567+
field public static final com.google.firebase.firestore.pipeline.RawOptions DEFAULT;
1568+
}
1569+
1570+
public static final class RawOptions.Companion {
1571+
}
1572+
16051573
public final class RawStage extends com.google.firebase.firestore.pipeline.Stage<com.google.firebase.firestore.pipeline.RawStage> {
16061574
method public static com.google.firebase.firestore.pipeline.RawStage ofName(String name);
16071575
method public com.google.firebase.firestore.pipeline.RawStage withArguments(java.lang.Object... arguments);
@@ -1613,6 +1581,14 @@ package com.google.firebase.firestore.pipeline {
16131581
}
16141582

16151583
public final class RealtimePipelineOptions extends com.google.firebase.firestore.pipeline.AbstractOptions<com.google.firebase.firestore.pipeline.RealtimePipelineOptions> {
1584+
method public com.google.firebase.firestore.pipeline.RealtimePipelineOptions withMetadataChanges(com.google.firebase.firestore.MetadataChanges metadataChanges);
1585+
method public com.google.firebase.firestore.pipeline.RealtimePipelineOptions withServerTimestampBehavior(com.google.firebase.firestore.DocumentSnapshot.ServerTimestampBehavior serverTimestampBehavior);
1586+
method public com.google.firebase.firestore.pipeline.RealtimePipelineOptions withSource(com.google.firebase.firestore.ListenSource source);
1587+
field public static final com.google.firebase.firestore.pipeline.RealtimePipelineOptions.Companion Companion;
1588+
field public static final com.google.firebase.firestore.pipeline.RealtimePipelineOptions DEFAULT;
1589+
}
1590+
1591+
public static final class RealtimePipelineOptions.Companion {
16161592
}
16171593

16181594
public final class SampleStage extends com.google.firebase.firestore.pipeline.Stage<com.google.firebase.firestore.pipeline.SampleStage> {
@@ -1643,12 +1619,12 @@ package com.google.firebase.firestore.pipeline {
16431619

16441620
public abstract sealed class Stage<T extends com.google.firebase.firestore.pipeline.Stage<T>> {
16451621
method protected final String getName();
1646-
method public final T with(String key, boolean value);
1647-
method public final T with(String key, com.google.firebase.firestore.pipeline.Field value);
1648-
method public final T with(String key, double value);
1649-
method protected final T with(String key, error.NonExistentClass value);
1650-
method public final T with(String key, String value);
1651-
method public final T with(String key, long value);
1622+
method public final T withOption(String key, boolean value);
1623+
method public final T withOption(String key, com.google.firebase.firestore.pipeline.Field value);
1624+
method public final T withOption(String key, double value);
1625+
method protected final T withOption(String key, error.NonExistentClass value);
1626+
method public final T withOption(String key, String value);
1627+
method public final T withOption(String key, long value);
16521628
property protected final String name;
16531629
}
16541630

firebase-firestore/src/main/java/com/google/firebase/firestore/Pipeline.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -812,8 +812,6 @@ internal constructor(
812812

813813
fun limit(limit: Int): RealtimePipeline = append(LimitStage(limit))
814814

815-
fun offset(offset: Int): RealtimePipeline = append(OffsetStage(offset))
816-
817815
fun select(selection: Selectable, vararg additionalSelections: Any): RealtimePipeline =
818816
append(SelectStage.of(selection, *additionalSelections))
819817

0 commit comments

Comments
 (0)