Приложение React Native -> DynamoDB через AWS Amplify. Как? - PullRequest
0 голосов
/ 12 января 2019

Я использую собственное приложение реагирования, в котором я успешно сгенерировал API-интерфейс GraphQL с помощью AWS Amplify CLI и определил schema.graphql. Я проверил это в консоли, и я могу определить информацию о видео в консоли AppSync и показать ее в DynamoDB в консоли. Когда я пытаюсь сделать это через приложение реагировать нативно, ничего не загружается.

Я также успешно вошел в систему через withAuthenticator в приложении.

В моем App.js я вызываю createVideo при нажатии кнопки и вызывает соответствующую функцию API мутации API.grapghql для записи данных в базу данных.

    createVideo = async () => {

        const newVideoInfo = {
          videoIdInt: 12345,
          videoName: "sheeran-moon",
          videoUploader: "ed",
          videoUploadedAt: "tonight",
          videoLength: 85,
          numberList: [7,8,9],
          shareLink: "www.voda.com"
        }

        try {
         await API.graphql(graphqlOperation(CreateVideo, newVideoInfo))  
         console.log('User successfully created!!')
        }
        catch (err) {
          console.log('create user error: ', err)
        }

      }
      render() {
    return (
      <View style={styles.container}>
        <Button 
           style={{margin: 40}}
           onPress={this.createVideo}
           title='Add User'
           backgroundColor='#ffa999'
        />
      </View>

    );
  }

В моем файле /graphql/mutation.js этот код относится к вызову в нем:

export const createVideo = `mutation CreateVideo($input: CreateVideoInput!) {
  createVideo(input: $input) {
    id
    videoIdInt
    videoName
    videoUploader
    videoUploadedAt
    videoLength
    numberList
    shareLink
  }
}
`;

Я попытался amplify push в терминале, но ничего не меняется. Мой /src/aws-exports.js файл пока содержит только это:

const awsmobile =  {
    "aws_project_region": "eu-west-2",
    "aws_cognito_identity_pool_id": xxxxxx
    "aws_cognito_region": "eu-west-2",
    "aws_user_pools_id": "eu-west-2_dxxxx",
    "aws_user_pools_web_client_id": "xxxxxx",
    "aws_appsync_graphqlEndpoint": "https://xxxxxxxxxxxxxx.appsync-api.eu-west-2.amazonaws.com/graphql",
    "aws_appsync_region": "eu-west-2",
    "aws_appsync_authenticationType": "AMAZON_COGNITO_USER_POOLS"
};

export default awsmobile;

А мой index.js содержит:

import Amplify from 'aws-amplify';
import config from './src/aws-exports';
Amplify.configure(config);

Понятия не имею, что мне здесь не хватает, чтобы эта мутация работала. Пожалуйста помоги!

...