Skip to content

Commit 6b1a915

Browse files
Merge d7e5846 into 58e1b6f
2 parents 58e1b6f + d7e5846 commit 6b1a915

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

packages/firestore/src/protos/firestore_proto_api.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ export declare namespace firestoreV1ApiClientInterfaces {
393393
}
394394
interface WriteResponse {
395395
streamId?: string;
396-
streamToken?: string;
396+
streamToken?: string | Uint8Array;
397397
writeResults?: WriteResult[];
398398
commitTime?: Timestamp;
399399
}

packages/firestore/src/remote/persistent_stream.ts

+6-12
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,17 @@ import { isNullOrUndefined } from '../util/types';
3030
import { ExponentialBackoff } from './backoff';
3131
import { Connection, Stream } from './connection';
3232
import {
33-
fromBytes,
3433
fromVersion,
3534
fromWatchChange,
3635
fromWriteResults,
3736
getEncodedDatabaseId,
3837
JsonProtoSerializer,
39-
toBytes,
4038
toListenRequestLabels,
4139
toMutation,
4240
toTarget,
4341
versionFromListenResponse
4442
} from './serializer';
4543
import { WatchChange } from './watch_change';
46-
import { ByteString } from '../util/byte_string';
4744

4845
const LOG_TAG = 'PersistentStream';
4946

@@ -679,7 +676,7 @@ export class PersistentWriteStream extends PersistentStream<
679676
* PersistentWriteStream manages propagating this value from responses to the
680677
* next request.
681678
*/
682-
private lastStreamToken: ByteString = ByteString.EMPTY_BYTE_STRING;
679+
private lastStreamToken: string | Uint8Array | undefined;
683680

684681
/**
685682
* Tracks whether or not a handshake has been successfully exchanged and
@@ -692,7 +689,7 @@ export class PersistentWriteStream extends PersistentStream<
692689
// Override of PersistentStream.start
693690
start(): void {
694691
this.handshakeComplete_ = false;
695-
this.lastStreamToken = ByteString.EMPTY_BYTE_STRING;
692+
this.lastStreamToken = undefined;
696693
super.start();
697694
}
698695

@@ -717,10 +714,7 @@ export class PersistentWriteStream extends PersistentStream<
717714
!!responseProto.streamToken,
718715
'Got a write response without a stream token'
719716
);
720-
this.lastStreamToken = fromBytes(
721-
this.serializer,
722-
responseProto.streamToken
723-
);
717+
this.lastStreamToken = responseProto.streamToken;
724718

725719
if (!this.handshakeComplete_) {
726720
// The first response is always the handshake response
@@ -754,7 +748,7 @@ export class PersistentWriteStream extends PersistentStream<
754748
debugAssert(this.isOpen(), 'Writing handshake requires an opened stream');
755749
debugAssert(!this.handshakeComplete_, 'Handshake already completed');
756750
debugAssert(
757-
this.lastStreamToken.isEqual(ByteString.EMPTY_BYTE_STRING),
751+
!this.lastStreamToken,
758752
'Stream token should be empty during handshake'
759753
);
760754
// TODO(dimond): Support stream resumption. We intentionally do not set the
@@ -772,12 +766,12 @@ export class PersistentWriteStream extends PersistentStream<
772766
'Handshake must be complete before writing mutations'
773767
);
774768
debugAssert(
775-
this.lastStreamToken.approximateByteSize() > 0,
769+
!!this.lastStreamToken,
776770
'Trying to write mutation without a token'
777771
);
778772

779773
const request: WriteRequest = {
780-
streamToken: toBytes(this.serializer, this.lastStreamToken),
774+
streamToken: this.lastStreamToken,
781775
writes: mutations.map(mutation => toMutation(this.serializer, mutation))
782776
};
783777

0 commit comments

Comments
 (0)