storage.vault.get возвращает тот же файл - PullRequest
0 голосов
/ 08 июня 2019

Я создал мобильное приложение без сервера, используя AWS Amplify, реагировать на нативную и Cognito Auth. До сих пор приложение позволяет пользователям входить в систему с использованием учетных данных, созданных из Cognito; затем приложение позволяет пользователю сканировать QR-код, который будет возвращать информацию, хранящуюся в корзине S3 (информация отображается в интернет-браузере за пределами приложения). Это в настоящее время все успешно; однако, когда я делаю корзину частной (что важно) и использую в коде метод Storage.Vault.Get, он возвращает только один частный объект / файл из корзины.

приложение класса расширяет React.Component {

constructor () {

 super()

 this.state = {

   //variable to hold the qr value

   data: '',

   fileurl: '',

   file: '',

   opneScanner: false,

 };

}

onOpenlink () {

 //Function to open URL, If scanned

 Linking.openURL(this.state.fileurl);

 //Linking used to open the URL in any browser that you have installed

}

onBarcodeScan (данные) {

 //called after te successful scanning of QRCode/Barcode

 this.setState({ data: data });

 this.setState({ opneScanner: false });

}

onOpneScanner () {

 var that =this;

 //To Start Scanning

 if(Platform.OS === 'android'){

   async function requestCameraPermission() {

     try {

       const granted = await PermissionsAndroid.request(

         PermissionsAndroid.PERMISSIONS.CAMERA,{

           'title': 'Code Blue App Camera Permission',

           'message': 'Code Blue App needs access to your camera '
         }

       )

       if (granted === PermissionsAndroid.RESULTS.GRANTED) {

         //If CAMERA Permission is granted

         that.setState({ data: '' });

         that.setState({ opneScanner: true });

       } else {

         alert("CAMERA permission denied");

       }

     } catch (err) {

       alert("Camera permission err",err);

       console.warn(err);

     }

   }

   //Calling the camera permission function

   requestCameraPermission();

 }else{

   that.setState({ data: '' });

   that.setState({ opneScanner: true });

 }

}

getData () {

Storage.vault.get('John.pdf') 

.then(data => { 

   this.setState({

     fileurl: data

   }) 

 });  

 Storage.vault.get('Mike.pdf')

.then(data => { 

   this.setState({

     fileurl: data

   }) 

 });   

}

componentDidMount () {

this.getData();   

this.timer = setInterval(() => this.getData(), 5000);

}

componentWillUnmount () {

clearInterval (this.timer);

this.timer = null;

}

render () {

 let displayModal;

 //If data is set then return this view

 if (!this.state.opneScanner) {

   return ( 

     <View style={styles.container}>

         <Text style={styles.heading}>MySay QR Scanner</Text>

         <Text style={styles.simpleText}>{this.state.data ? 'Scanned QR 

Код: '+ this.state.data:' '}

         {this.state.data.includes("http") ?

           <TouchableHighlight

             onPress={() => this.onOpenlink()}

             style={styles.button}>

               <Text style={{ color: '#FFFFFF', fontSize: 14 }}>Open 

Link

           </TouchableHighlight>

           : null

         }

         <TouchableHighlight

           onPress={() => this.onOpneScanner()}

           style={styles.button}>

             <Text style={{ color: '#FFFFFF', fontSize: 14 }}>

             Open QR Scanner

             </Text>

         </TouchableHighlight>

     </View>
   );
 }
 return (
   <View style={{ flex: 1 }}>
     <CameraKitCameraScreen
       showFrame={false}
       //Show/hide scan frame
       scanBarcode={true}
       //Can restrict for the QR Code only
       laserColor={'blue'}
       //Color can be of your choice
       frameColor={'yellow'}
       //If frame is visible then frame color
       colorForScannerFrame={'black'}
       //Scanner Frame color
       onReadCode={event =>
         this.onBarcodeScan(event.nativeEvent.codeStringValue)
       }
     />
   </View>
 );

} }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...