【问题标题】:Ionic AWS Mobile Hub Starter issuesIonic AWS Mobile Hub Starter 问题
【发布时间】:2018-01-14 03:24:27
【问题描述】:

我按照github readme 上的说明将应用程序导入我的 AWS Mobile Hub 项目并将我的项目 aws-config.js 下载到 src/assets。当我尝试为应用程序提供服务时,出现运行时错误:

Runtime Error:

aws_cognito_region is not defined

Stack:

ReferenceError: aws_cognito_region is not defined
    at new Cognito (http://localhost:8100/build/main.js:112:36)
    at _createClass (http://localhost:8100/build/vendor.js:10975:20)
    at _createProviderInstance$1 (http://localhost:8100/build/vendor.js:10949:26)
    at resolveNgModuleDep (http://localhost:8100/build/vendor.js:10934:17)
    at _createClass (http://localhost:8100/build/vendor.js:10977:29)
    at _createProviderInstance$1 (http://localhost:8100/build/vendor.js:10949:26)
    at resolveNgModuleDep (http://localhost:8100/build/vendor.js:10934:17)
    at NgModuleRef_.get (http://localhost:8100/build/vendor.js:12159:16)
    at resolveDep (http://localhost:8100/build/vendor.js:12655:45)
    at createClass (http://localhost:8100/build/vendor.js:12525:32)

任何见解将不胜感激。

编辑:我在 app.config.ts 代码下方添加了一段我的 aws-config.js 文件(省略了顶部包含我的 AWS 移动中心项目详细信息的常量声明)

app.config.ts:

import { Injectable } from '@angular/core';

declare var AWS: any;
declare const aws_mobile_analytics_app_id;
declare const aws_cognito_region;
declare const aws_cognito_identity_pool_id;
declare const aws_user_pools_id;
declare const aws_user_pools_web_client_id;
declare const aws_user_files_s3_bucket;

@Injectable()
export class AwsConfig {
  public load() {

    // Expects global const values defined by aws-config.js
    const cfg = {
      "aws_mobile_analytics_app_id": aws_mobile_analytics_app_id,
      "aws_cognito_region": aws_cognito_region,
      "aws_cognito_identity_pool_id": aws_cognito_identity_pool_id,
      "aws_user_pools_id": aws_user_pools_id,
      "aws_user_pools_web_client_id": aws_user_pools_web_client_id,
      "aws_user_files_s3_bucket": aws_user_files_s3_bucket
    };

    AWS.config.customUserAgent = AWS.config.customUserAgent + ' Ionic';

    return cfg;
  }
}

aws-config.js:

const 'aws_cognito_region' = 'us-east-1';
... etc

AWS.config.region = aws_project_region;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: aws_cognito_identity_pool_id
  }, {
    region: aws_cognito_region
  });
AWS.config.update({customUserAgent: 'MobileHub v0.1'});

【问题讨论】:

    标签: amazon-web-services ionic-framework ionic3 aws-mobilehub


    【解决方案1】:

    我通过转到 aws-config.js 并删除定义的每个变量上的单引号来解决此问题。所以如果你有这个:

    const 'aws_cognito_region' = 'us-east-1';
    

    改成这样:

    const aws_cognito_region = 'us-east-1';
    

    【讨论】:

      【解决方案2】:

      您需要使用您的 AWS 信息(应用 ID、池 ID 等)配置 src/app/app.config。

      【讨论】:

      • 感谢您的回复。这都是来自 Ionic 的预制代码,所以这就是我感到困惑的原因。我在上面编辑了我的问题并添加了 app.config 以及 aws-config.js 文件的功能部分(我省略了顶部的常量声明,其中包含我的应用程序的所有 AWS 项目详细信息,但它们肯定存在,包括 aws_cognito_region )。
      猜你喜欢
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多