这个问题通常出现在使用Angular Firebase进行测试和开发时,因为默认情况下,Angular Firebase将使用实际的Firebase服务进行测试。为避免这种情况,我们可以使用Angular Firebase提供的本地存储和函数服务的仿真器。
下面是如何初始化仿真器的示例代码:
import { TestBed } from '@angular/core/testing';
import { AngularFireModule } from '@angular/fire';
import { AngularFireFunctionsModule, AngularFireFunctions } from '@angular/fire/functions';
import { AngularFireStorageModule, AngularFireStorage } from '@angular/fire/storage';
// Replace this values with your own configuration
const firebaseConfig = {
apiKey: '***',
authDomain: '***',
databaseURL: '***',
projectId: '***',
storageBucket: '***',
messagingSenderId: '***',
appId: '***'
};
describe('MyComponent', () => {
let functions: AngularFireFunctions;
let storage: AngularFireStorage;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
AngularFireModule.initializeApp(firebaseConfig),
AngularFireFunctionsModule,
AngularFireStorageModule
]
});
functions = TestBed.inject(AngularFireFunctions);
storage = TestBed.inject(AngularFireStorage);
// Initialize emulators
functions.useEmulator('localhost', 5001);
storage.useEmulator('localhost', 9199);
});
it('should do something', () => {
// Your test code goes here
});
});
示例代码中,我们通过AngularFireFunctions
和AngularFireStorage
从TestBed
中获取仿真版本的模块对象,然后使用useEmulator
方法初始化仿真器。请注意替换示例中Firebase配置中的占位符。
通过使用本地存储和函数服务的仿真器,我们可以在本地开发环境中模拟Firebase服务,从而方便地进行测试和调试。