После добавления хранилища в мой проект Amplify я получил следующую ошибку:
AppComponent_Host.ngfactory.js? [sm]:1 ERROR TypeError: Cannot read property 'aws_appsync_region' of null
at GraphQLAPIClass.push.../../node_modules/@aws-amplify/api-graphql/lib-esm/GraphQLAPI.js.GraphQLAPIClass._graphqlSubscribe (GraphQLAPI.js:342)
at GraphQLAPIClass.push.../../node_modules/@aws-amplify/api-graphql/lib-esm/GraphQLAPI.js.GraphQLAPIClass.graphql (GraphQLAPI.js:247)
at APIClass.push.../../node_modules/@aws-amplify/api/lib-esm/API.js.APIClass.graphql (API.js:206)
at new APIService (API.service.ts:2004)
at core.js:11183
at _callFactory (core.js:20296)
at _createProviderInstance (core.js:20254)
at resolveNgModuleDep (core.js:20229)
at NgModuleRef_.push.../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:20905)
at injectInjectorOnly (core.js:628)
Проект создан в Angular
Angular CLI: 8.3.3
Node: 12.16.1
OS: win32 x64
Angular: 8.2.14
Это мой main.ts
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import Amplify from 'aws-amplify';
import { AppModule } from './app/app.module';
import awsconfig from './aws-exports';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch(err => console.error(err));
Amplify.configure(awsconfig);
Когда я меняю конфигурацию в main.ts на:
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import API from '@aws-amplify/api';
import Auth from '@aws-amplify/auth';
import PubSub from '@aws-amplify/pubsub';
import Storage from '@aws-amplify/storage';
//import Amplify from 'aws-amplify';
import { AppModule } from './app/app.module';
import awsconfig from './aws-exports';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch(err => console.error(err));
//Amplify.configure(awsconfig);
Auth.configure(awsconfig);
Storage.configure(awsconfig);
API.configure(awsconfig);
PubSub.configure(awsconfig);
Затем приложение загружается, но при использовании хранилища я получаю эту ошибку:
[WARN] 42:23.733 AWSS3Provider - ensure credentials error No Auth module registered in Amplify
No credentials
Кроме того, когда я меняю main.ts на:
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import API from '@aws-amplify/api';
import PubSub from '@aws-amplify/pubsub';
import Amplify from 'aws-amplify';
import { AppModule } from './app/app.module';
import awsconfig from './aws-exports';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch(err => console.error(err));
Amplify.configure(awsconfig);
// Auth.configure(awsconfig);
// Storage.configure(awsconfig);
API.configure(awsconfig);
PubSub.configure(awsconfig);
Эта ошибка регистрируется при попытке использовать хранилище:
TypeError: Cannot read property 'put' of undefined
at Storage.<anonymous> (Storage.js:229)
at step (Storage.js:55)
at Object.next (Storage.js:36)
at Storage.js:30
at new ZoneAwarePromise (zone.js:931)
at push.../../node_modules/@aws-amplify/storage/lib-esm/Storage.js.__awaiter (Storage.js:26)
at Storage.push.../../node_modules/@aws-amplify/storage/lib-esm/Storage.js.Storage.put (Storage.js:220)
at RealtimeSessionService.push../src/app/services/realtime/realtime-session.service.ts.RealtimeSessionService.uploadFileTester (realtime-session.service.ts:355)
at NavComponent.push../src/app/components/nav/nav.component.ts.NavComponent.addFile (nav.component.ts:96)
at Object.eval [as handleEvent] (NavComponent.html:27)
core.js:4002 ERROR Error: Uncaught (in promise): No plugin found in Storage for the provider
at resolvePromise (zone.js:852)
at Function.ZoneAwarePromise.reject (zone.js:944)
at Storage.<anonymous> (Storage.js:227)
at step (Storage.js:55)
at Object.next (Storage.js:36)
at Storage.js:30
at new ZoneAwarePromise (zone.js:931)
at push.../../node_modules/@aws-amplify/storage/lib-esm/Storage.js.__awaiter (Storage.js:26)
at Storage.push.../../node_modules/@aws-amplify/storage/lib-esm/Storage.js.Storage.put (Storage.js:220)
at RealtimeSessionService.push../src/app/services/realtime/realtime-session.service.ts.RealtimeSessionService.uploadFileTester (realtime-session.service.ts:355)
Любые предложения приветствуются, чтобы попытаться решить эту проблему . Я попытался воспроизвести это в новом проекте, но ошибки не регистрируются, и все вроде работает. В новом проекте просто используется
Amplify.configure(awsconfig);
С уважением и заранее спасибо!