如何为第三方开发人员构建安全的Firestore API:SDK vs Firebase REST API vs https函数?
我必须使用Firebase构建一个API,在设计选择方面需要一些帮助。我希望能够向用户销售API,然后用户可以使用它构建/集成自己的应用程序。用户将同时具有读和写权限 一般资料:如何为第三方开发人员构建安全的Firestore API:SDK vs Firebase REST API vs https函数?,firebase,api,google-cloud-firestore,firebase-authentication,sdk,Firebase,Api,Google Cloud Firestore,Firebase Authentication,Sdk,我必须使用Firebase构建一个API,在设计选择方面需要一些帮助。我希望能够向用户销售API,然后用户可以使用它构建/集成自己的应用程序。用户将同时具有读和写权限 一般资料: 我正在使用Firestore db进行电子邮件和密码验证 只有指定的用户才能使用API 每个用户只能访问与其相关的特定文档 我注意到有3种不同的方式可以向Firestore db的用户提供API: https触发的云函数() 使用SDK() 使用Firbase()提供的RESTAPI API要求: 仅由我专门授予
- 我正在使用Firestore db进行电子邮件和密码验证
- 只有指定的用户才能使用API
- 每个用户只能访问与其相关的特定文档
- 仅由我专门授予访问权限的用户使用(电子邮件和密码登录)
- 我想将这些用户限制为他们能够执行的几个读/写任务
- 它需要安全
- 使用第三个选项-Firebase提供的RESTAPI(从而为用户提供projectId和API密钥)
- 将授权用户添加到Firbase上的授权帐户列表中,并使用自定义声明和数据库规则限制访问
- 似乎https函数(选项1)通常用于API构建。选项2和3是否不安全
- 这3个选项的正常使用情况是什么?什么时候应该使用每种方法,什么时候应该避免使用每种方法
- 我对选项3的选择是否有明显的缺陷
- 我们将非常感谢关于做出这些设计决策的任何其他有用信息
提前谢谢你TL;DL:这取决于你想用这个API做什么,调用它的设备/用户的数量和类型 在回答您的问题之前,我将在下面列出每种方法的优点:
- 云功能:
- SDK和客户端库:
- 云Firestore REST API:
< Stime> Note :对于SDK和REST API,您需要考虑API的托管,无论是在云函数上,如AppEngine标准、AppEngine Flex或是计算引擎服务器实例。 综上所述,考虑到以上几点,您和您的API的使用和要求决定哪个选项是最好的
根据安全性,我认为如果firebase规则和firebase身份验证设置正确,则所有选项都是安全的