Skip to content

Tomandersen/pipelines evaluate #6962

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

Draft
wants to merge 68 commits into
base: tomandersen/pipelines
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
ae034da
Realtime Pipeline Proto changes
tom-andersen May 12, 2025
4e4a4b2
RealtimePipeline evaluate initial implementation
tom-andersen May 15, 2025
1b1f208
Merge branch 'tomandersen/pipelines' into tomandersen/pipelines-evaluate
tom-andersen May 15, 2025
0cdb909
API
tom-andersen May 15, 2025
c2d442c
Cleanup
tom-andersen May 15, 2025
db7c444
Additional Realtime Expression Support
tom-andersen May 21, 2025
2062c94
Merge branch 'tomandersen/pipelines' into tomandersen/pipelines-evaluate
tom-andersen May 22, 2025
9ea166b
Timestamp expressions WIP
tom-andersen May 22, 2025
e823b63
Merge branch 'tomandersen/pipelines' into tomandersen/pipelines-evaluate
tom-andersen May 23, 2025
59eb4ae
fix after merge
tom-andersen May 23, 2025
38b2268
Implement offline evaluation of map
tom-andersen May 27, 2025
6a024dc
Add array
tom-andersen May 27, 2025
13077e6
Remove broken test
tom-andersen May 28, 2025
742546d
Add Arithmetic tests
tom-andersen May 28, 2025
5eff0fa
Add comparison tests
tom-andersen May 29, 2025
e875d1a
Add comparison tests
tom-andersen May 29, 2025
4e7d6db
Add comparison tests
tom-andersen May 29, 2025
00211cc
Refactor
tom-andersen May 29, 2025
8c516fd
Implement and test realtime array functions
tom-andersen May 30, 2025
37e25e7
Implement and test realtime debug functions
tom-andersen May 30, 2025
2cb2f45
Implement and test realtime field and logical functions
tom-andersen May 30, 2025
2e68d65
Implement and test realtime string functions
tom-andersen Jun 2, 2025
6332029
Implement and test realtime timestamp functions
tom-andersen Jun 2, 2025
f5fdcf6
Test offline mirroring semantics
tom-andersen Jun 2, 2025
5b822c7
Add realtime tests for mapGet. Fixup implementation.
tom-andersen Jun 2, 2025
5c8f2ce
Comments
tom-andersen Jun 3, 2025
254a6d6
Comments
tom-andersen Jun 3, 2025
4e98dfc
Add copyright
tom-andersen Jun 3, 2025
b1f4006
Where tests
tom-andersen Jun 4, 2025
bbe85f4
Sort tests
tom-andersen Jun 4, 2025
77dfc07
Fixes
tom-andersen Jun 4, 2025
60eb272
Fixes
tom-andersen Jun 4, 2025
fbb3cd1
Limit tests
tom-andersen Jun 4, 2025
9461e3b
Style
tom-andersen Jun 4, 2025
28f8845
Add Null Semantics Tests
tom-andersen Jun 4, 2025
5324096
Pretty
tom-andersen Jun 5, 2025
38b6f39
Number Semantics Test
tom-andersen Jun 5, 2025
86ea2cc
Merge branch 'tomandersen/pipelines' into tomandersen/pipelines-evaluate
tom-andersen Jun 5, 2025
64f26ea
Fix after merge
tom-andersen Jun 5, 2025
bcbf83f
Merge branch 'tomandersen/pipelines' into tomandersen/pipelines-evaluate
tom-andersen Jun 5, 2025
285a529
Spotless
tom-andersen Jun 5, 2025
7ddca59
Generate API
tom-andersen Jun 5, 2025
1263e8e
Refactor Values
tom-andersen Jun 5, 2025
b754f23
Inequality tests
tom-andersen Jun 5, 2025
a2d0d46
Pretty
tom-andersen Jun 6, 2025
8756f20
Merge branch 'tomandersen/pipelines' into tomandersen/pipelines-evaluate
tom-andersen Jun 6, 2025
2708d15
Copyright
tom-andersen Jun 6, 2025
4fcdf17
Unicode Tests
tom-andersen Jun 6, 2025
387bbe0
Nested properties Tests
tom-andersen Jun 6, 2025
79f0444
DisjunctiveTests
tom-andersen Jun 6, 2025
49001b8
Pretty
tom-andersen Jun 9, 2025
b9eacff
Collection Group Tests
tom-andersen Jun 9, 2025
047969b
Collection Tests
tom-andersen Jun 9, 2025
5e2192e
Complex Tests
tom-andersen Jun 9, 2025
e0a73e6
Error Handling Tests
tom-andersen Jun 9, 2025
c175284
Rewrite stages, fixes and refactoring
tom-andersen Jun 11, 2025
82b4723
Avoid boxing Boolean by using Predicate lambda.
tom-andersen Jun 12, 2025
73d2fa3
Only perform expensive overlay application when overlay is NOT empty.
tom-andersen Jun 12, 2025
22f33d7
Use helper method to make code more DRY
tom-andersen Jun 12, 2025
1cb07fd
Negative LimitStage and OffsetStage evaluation
tom-andersen Jun 12, 2025
c010b5e
Simplify
tom-andersen Jun 12, 2025
736967e
Small fixes to expressions
tom-andersen Jun 17, 2025
af162c0
Pretty
tom-andersen Jun 18, 2025
41283c8
Options Fixes
tom-andersen Jun 18, 2025
aa58af7
Fix
tom-andersen Jun 19, 2025
3065e65
Add realtimePipeline() to FirebaseFirestore
tom-andersen Jul 16, 2025
e68a01f
Realtime API
tom-andersen Jul 17, 2025
17896b8
Realtime API
tom-andersen Jul 18, 2025
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
150 changes: 76 additions & 74 deletions firebase-firestore/api.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions firebase-firestore/firebase-firestore.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ dependencies {
implementation libs.grpc.stub
implementation libs.kotlin.stdlib
implementation libs.kotlinx.coroutines.core
implementation 'com.google.re2j:re2j:1.6'

compileOnly libs.autovalue.annotations
compileOnly libs.javax.annotation.jsr250
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public final class DocumentReference {
}

/** @hide */
static DocumentReference forPath(ResourcePath path, FirebaseFirestore firestore) {
public static DocumentReference forPath(ResourcePath path, FirebaseFirestore firestore) {
if (path.length() % 2 != 0) {
throw new IllegalArgumentException(
"Invalid document reference. Document references must have an even number "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -894,4 +894,15 @@ public PipelineSource pipeline() {
clientProvider.ensureConfigured();
return new PipelineSource(this);
}

/**
* Build a new RealtimePipeline
*
* @return {@code RealtimePipelineSource} for this Firestore instance.
*/
@NonNull
public RealtimePipelineSource realtimePipeline() {
clientProvider.ensureConfigured();
return new RealtimePipelineSource(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@

package com.google.firebase.firestore;

import android.app.Activity;
import androidx.annotation.NonNull;
import com.google.firebase.firestore.core.ActivityScope;

/** Represents a listener that can be removed by calling {@link #remove()}. */
public interface ListenerRegistration {

Expand All @@ -22,4 +26,13 @@ public interface ListenerRegistration {
* call, subsequent calls have no effect.
*/
void remove();

/**
* The listener will be automatically removed during {@link Activity#onStop}.
*
* @param activity The activity to scope the listener to.
*/
default void scope(@NonNull Activity activity) {
ActivityScope.bind(activity, this);
}
}
Loading
Loading