Вы можете попробовать один из этих 2 вариантов
Опция 1
Изменить заводскую настройку так, чтобы она принимала идентификатор платформы
declare let localStorage: any;
export function localStorageFactory(platformId: Object)
{
return isPlatformBrowser(platformId)? localStorage: null; //Don't use null, use a dummy implementation that does not rely on localStorage
}
export const BROWSER_STORAGE = new InjectionToken<Storage>('Browser Storage', {
providedIn: 'root',
factory: () => localStorageFactory,
deps: [PLATFORM_ID]
});
Опция 2
Измените текущую реализацию службы, чтобы внедрить маркер идентификатора платформы
@Injectable({
providedIn: 'root'
})
export class BrowserStorageService {
private readonly isBrowser;
constructor(@Inject(BROWSER_STORAGE) public storage: Storage, @Inject(PLATFORM_ID) private platformId: Object) {
this.isBrowser = isPlatformBrowser(platformId);
}
get(key: string) {
//check if browser or not
return this.isBrowser? this.storage.getItem(key) : null;
}