Android 当后端完全由';提供时,如何安全地存储第三方API密钥;后端即服务';?

Android 当后端完全由';提供时,如何安全地存储第三方API密钥;后端即服务';?,android,firebase,react-native,api-key,Android,Firebase,React Native,Api Key,我正在尝试为React本机应用程序开发一种保护第三方API密钥的策略。在构建web应用程序时,可以将API密钥存储在环境变量中,然后在部署应用程序服务器时对其进行保护 但是,对于仅使用“后端即服务”后端服务(如Firebase)的移动应用程序,该应用程序不部署,而是分布式的,并且可以访问服务 在做了一些研究之后,似乎没有标准/直接的方法来解决这个问题,尽管这一定是成千上万的应用程序开发人员所面临的情况 我使用的是Firebase,还有另外两个需要API密钥的服务。我最初的解决方案是将这些API键

我正在尝试为React本机应用程序开发一种保护第三方API密钥的策略。在构建web应用程序时,可以将API密钥存储在环境变量中,然后在部署应用程序服务器时对其进行保护

但是,对于仅使用“后端即服务”后端服务(如Firebase)的移动应用程序,该应用程序不部署,而是分布式的,并且可以访问服务

在做了一些研究之后,似乎没有标准/直接的方法来解决这个问题,尽管这一定是成千上万的应用程序开发人员所面临的情况

我使用的是Firebase,还有另外两个需要API密钥的服务。我最初的解决方案是将这些API键(不是Firebase键)添加到Firebase环境变量中,如前所述,然后在应用程序中调用Firebase云函数并检索它们。但我认为问题可能在于,密钥仍然可以被拦截,因为它们将以纯文本形式检索


这是存储第三方密钥的好方法吗?如果不是,还可以采取什么其他方法?

Firebase有多种类型的密钥。Firebase控制台和文档告诉您添加到应用程序中的配置数据不是任何类型的身份验证机制,而是允许代码在服务器上查找其Firebase项目的配置数据。请参阅Thank@FrankvanPuffelen,但它确实会说:“在描述如何存储函数之前,通常需要对函数进行额外的配置,例如第三方API键”,因此我将其视为存储API键的机制。我想问的问题是,这是不是上帝的方法啊,明白了。我错过了你在问题中关于这是第三方API密钥的评论。这样的键不应该在客户端代码中经常使用。如果你想在Firebase中使用它们,你通常只会在云函数中使用它们,在云函数中你的用户看不到它们。Firebase控制台和文档告诉您添加到应用程序中的配置数据不是任何类型的身份验证机制,而是允许代码在服务器上查找其Firebase项目的配置数据。请参阅Thank@FrankvanPuffelen,但它确实会说:“在描述如何存储函数之前,通常需要对函数进行额外的配置,例如第三方API键”,因此我将其视为存储API键的机制。我想问的问题是,这是不是上帝的方法啊,明白了。我错过了你在问题中关于这是第三方API密钥的评论。这样的键不应该在客户端代码中经常使用。如果你想在Firebase中使用它们,你通常只在云功能中使用它们,在云功能中你的用户看不到它们。