@@ -111,7 +111,10 @@ import {
111
111
valueDescription ,
112
112
validateIsNotUsedTogether
113
113
} from '../util/input_validation' ;
114
- import { logError , setLogLevel as setClientLogLevel } from '../util/log' ;
114
+ import {
115
+ setLogLevel as setClientLogLevel ,
116
+ logWarn
117
+ } from '../util/log' ;
115
118
import { AutoId } from '../util/misc' ;
116
119
import { Deferred } from '../util/promise' ;
117
120
import { FieldPath as ExternalFieldPath } from './field_path' ;
@@ -503,7 +506,7 @@ export class Firestore implements PublicFirestore, FirebaseService {
503
506
throw new FirestoreError (
504
507
Code . FAILED_PRECONDITION ,
505
508
'Firestore has already been started and its settings can no longer ' +
506
- 'be changed. You can only call settings() before calling any other ' +
509
+ 'be changed. You can only modify settings before calling any other ' +
507
510
'methods on a Firestore object.'
508
511
) ;
509
512
}
@@ -514,6 +517,24 @@ export class Firestore implements PublicFirestore, FirebaseService {
514
517
}
515
518
}
516
519
520
+ useEmulator ( host : string , port : number ) : void {
521
+ validateExactNumberOfArgs ( 'Firestore.useEmulator' , arguments , 2 ) ;
522
+ validateArgType ( 'Firestore.useEmulator' , 'string' , 1 , host ) ;
523
+ validateArgType ( 'Firestore.useEmulator' , 'number' , 2 , port ) ;
524
+
525
+ if ( this . _settings . host !== DEFAULT_HOST ) {
526
+ logWarn (
527
+ 'Host has been set in both settings() and useEmulator(), emulator host will be used'
528
+ ) ;
529
+ }
530
+
531
+ this . settings ( {
532
+ host : `${ host } :${ port } ` ,
533
+ ssl : false ,
534
+ merge : true
535
+ } ) ;
536
+ }
537
+
517
538
enableNetwork ( ) : Promise < void > {
518
539
this . ensureClientConfigured ( ) ;
519
540
return this . _firestoreClient ! . enableNetwork ( ) ;
0 commit comments