Получение ошибки при попытке вставить ключи в переменные окружения и использовать их для канала GetStream.io - PullRequest
1 голос
/ 10 апреля 2019

Я использую GetStream.io для своего приложения, именно для новостной ленты.Когда я просто пытаюсь вставить свой ключ API и токен прямо в компонент StreamApp, я получаю сообщение об ошибке, что не могу использовать их публично, потому что есть риск, что кто-то может его украсть.Итак, я обнаружил, что нужно использовать пакет babel-plugin-transform-inline-environment-variable.Вот как выглядит мой код:

import React, { Component } from 'react';
import { StreamApp, FlatFeed, } from 'react-native-activity-feed';
import { Text, View, SafeAreaView } from "react-native";
import firebase from "react-native-firebase";
var stream = require('getstream');

export default class newsFeed extends React.Component {
 constructor(props) {
  super(props);
  this.state = {
   appid: process.env['REACT_APP_API_ID'],
   apptoken: process.env['REACT_APP_TOKEN'],
   apikey: process.env['REACT_APP_API_KEY']
 };
}

render() {
  return (
    <SafeAreaView style={{flex: 1}} forceInset={{ top: 'always' }}>
     <StreamApp
        apiKey={this.state.apikey}
        appId={this.state.appid}
        token={this.state.apptoken}
     />
    </SafeAreaView>
  )
 }
}

Как вы понимаете, переменные prcoess.env сохраняются в файле .env.Файл подключен к файлу .babelrc.

Проблема заключается в том, что я получаю сообщение об ошибке: «Не удается прочитать свойство« данные »из неопределенного».

В чем заключается моя ошибка и как ее можно исправитьэто?

1 Ответ

0 голосов
/ 11 апреля 2019

Поскольку вы используете Stream на стороне клиента (браузер), вам необходимо взаимодействовать с Stream API, используя токен пользователя вместо API-ключа и секрета.

Маркеры пользователя должны создаваться в доверенной среде (например,ваш сервер / облачная функция), используя учетные данные вашего приложения и переданные вашему клиенту.

var stream = require('getstream');

client = stream.connect(apiKey, apiSecret, appId);
const userToken = client.createUserToken('the-user-id');
...