您在 react 本机项目中为 AWS 精确定位的凭证配置设置在哪里?



当我尝试启动我的反应原生项目时,出现以下错误: AWSPinpointProvider 记录事件失败:配置中缺少凭证时出现凭证错误。我还没有使用记录功能,所以我假设这是来自配置功能。我是 react-native 和 AWS 精确定位的新手,所以我应该在哪里配置凭证?我有一个~/.aws/凭据和~/.aws/配置文件,我可以连接到cognito,这只是导致问题的精确定位。当然,我正在使用 aws amplify。任何帮助将不胜感激。

import { withAuthenticator } from 'aws-amplify-react-native';  
import Auth from '@aws-amplify/auth';
import Analytics from '@aws-amplify/analytics';
import awsconfig from './aws-exports';
Auth.configure(awsconfig);
Analytics.configure(awsconfig);

我希望在 Pinpoint 中看到应用程序启动等事件。我至少希望它不会使应用程序崩溃。

首次使用AWS Amplify 配置 React-Native 项目时(即使用命令"amplify init">),您可能会在终端上看到一个部分,指出:"?是否要使用 AWS 配置文件?(是/否)">

*如果您选择"Y",将在">amplify/.config">文件夹中创建一个名为"local-aws-info.json">的 JSON 文件,从中获取您的凭据。对于此选项,这个"local-aws-info.json">文件的结构将类似于以下内容:

{
"dev": {
"configLevel": "project",
"useProfile": true,
"profileName": "syumaK"
}
}

对于此选项,Amplify 将在配置 awscli 时使用指定的 AWS 配置文件。

如果您选择"n",系统将提示您输入">访问密钥","密钥">"区域"。在">amplify/.config"文件夹中,将创建一个名为"local-aws-info.json">的JSON文件,从中获取您的凭据。对于此选项,这个"local-aws-info.json">文件的结构将类似于以下内容:

{
"dev": {
"configLevel": "project",
"useProfile": false,
"awsConfigFilePath": "/Users/syumaK/.amplify/awscloudformation/AjWphtMBs0"
}
}

此外,我的"App.js">文件导入语句如下所示:

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { withAuthenticator } from 'aws-amplify-react-native';
import Amplify from '@aws-amplify/core';
import { Analytics } from 'aws-amplify'; 
import aws_exports from './aws-exports'; 
Amplify.configure(aws_exports); Analytics.configure(aws_exports);
window.LOG_LEVEL = 'DEBUG';

我已经使用以下环境规范测试了上述建议:

  • 操作系统 : 麦克高塞拉 v10.13.6
  • "AWS-Amplify": "^1.1.28">
  • "aws-amplify-react-native": "^2.1.12"
  • "反应":"16.8.3" "反应原生":"0.59.9">

查看调试日志后,这是由于您的身份验证配置为不允许未经身份验证地使用您的应用程序而导致的。解决方法是在 amplify cli 中设置您的身份验证以允许未经身份验证的使用和使用,例如,withAuthenticator hoc 不允许在没有身份验证的情况下进入您的应用程序。