首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Expo (React Native)应用程序中使用Firebase

在Expo (React Native)应用程序中使用Firebase
EN

Stack Overflow用户
提问于 2019-11-08 19:16:47
回答 2查看 802关注 0票数 2

我正在考虑将Firebase用于我的新移动应用程序,这是一个世博会应用程序。世博会的团队为此做了一个很好的教程(https://docs.expo.io/versions/latest/guides/using-firebase/)。

阅读本教程,我可以看到推荐的方法是将API凭据(密钥、项目ID等)直接在应用程序中,并以这种方式初始化客户端:

代码语言:javascript
代码运行次数:0
运行
复制
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)项目中安全吗?

EN

回答 2

Stack Overflow用户

发布于 2019-11-08 19:31:54

我也在使用firebase,还有很多需要KEy接口的第三方软件开发工具包。我通过在后端存储它来做到这一点,当应用程序初始化(即挂载)时,我调用一个API到后端,它给出了所有的API密钥,我将它们存储在各自的异步存储中,所以每当我需要那个特定的API密钥时,我只需执行AsyncStorage.getItem('API_Key'),它既是安全的,又不能被跟踪,因为它来自后端。显然,在后端,您希望将它们存储为环境变量。所以我建议你遵循这一点。

在您的情况下,只需这样做

代码语言:javascript
代码运行次数:0
运行
复制
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);
票数 0
EN

Stack Overflow用户

发布于 2020-06-08 17:00:16

我建议你使用像Visual Studio App Center这样的服务来定义你的环境变量,然后在你的代码中引用这些变量。在构建过程中,VS App Center将适合您在代码中使用它的位置的值。

因此,敏感的值甚至不会触及您的代码库。这是我能想到的最安全的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58765523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档