Использование приложения Firebase in Expo (React Native) - PullRequest
1 голос
/ 08 ноября 2019

Я рассматриваю Firebase для моего нового мобильного приложения, которое представляет собой приложение Expo. Команда Expo сделала хороший урок об этом (https://docs.expo.io/versions/latest/guides/using-firebase/).

Читая этот урок, я вижу, что рекомендуемый способ - поместить учетные данные API (ключ, идентификатор проекта и т. Д.) Непосредственно в приложение и инициализироватьклиент таким образом:

import * as firebase from 'firebase';

// Initialize Firebase
const firebaseConfig = {
  apiKey: "<YOUR-API-KEY>",
  authDomain: "<YOUR-AUTH-DOMAIN>",
  databaseURL: "<YOUR-DATABASE-URL>",
  storageBucket: "<YOUR-STORAGE-BUCKET>"
};

firebase.initializeApp(firebaseConfig);

Вопрос: безопасно ли вставлять ключ API в проект RN (Expo)?

1 Ответ

0 голосов
/ 08 ноября 2019

Я тоже использую Firebase, а также множество других сторонних SDK, которым нужен API KEy. Я сделал это, сохранив его в бэкэнде, и когда приложение инициализируется (т.е. монтируется), я вызываю API для бэкенда, который дает все ключи API, и сохраняю их в соответствующих хранилищах Async, чтобы всякий раз, когда мне нужноэтот конкретный ключ API, я просто делаю AsyncStorage.getItem ('API_Key'), и он оба защищен и не может быть отслежен, так как он из бэкэнда. И, очевидно, в бэкэнде вы хотите хранить их как переменные env. Поэтому я бы посоветовал вам следовать этому.

В вашем случае просто выполните

let firebaseApiKey = AsyncStorage.getItem('firebaseKey');

// Initialize Firebase
const firebaseConfig = {
  apiKey: firebaseApiKey,
  authDomain: "<YOUR-AUTH-DOMAIN>",
  databaseURL: "<YOUR-DATABASE-URL>",
  storageBucket: "<YOUR-STORAGE-BUCKET>"
};

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