Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为第三方开发人员构建安全的Firestore API:SDK vs Firebase REST API vs https函数?_Firebase_Api_Google Cloud Firestore_Firebase Authentication_Sdk - Fatal编程技术网

如何为第三方开发人员构建安全的Firestore API:SDK vs Firebase REST API vs https函数?

如何为第三方开发人员构建安全的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要求: 仅由我专门授予

我必须使用Firebase构建一个API,在设计选择方面需要一些帮助。我希望能够向用户销售API,然后用户可以使用它构建/集成自己的应用程序。用户将同时具有读和写权限

一般资料:

  • 我正在使用Firestore db进行电子邮件和密码验证
  • 只有指定的用户才能使用API
  • 每个用户只能访问与其相关的特定文档
我注意到有3种不同的方式可以向Firestore db的用户提供API:

  • https触发的云函数()
  • 使用SDK()
  • 使用Firbase()提供的RESTAPI
  • API要求:

    • 仅由我专门授予访问权限的用户使用(电子邮件和密码登录)
    • 我想将这些用户限制为他们能够执行的几个读/写任务
    • 它需要安全
    我目前的做法是:

    • 使用第三个选项-Firebase提供的RESTAPI(从而为用户提供projectId和API密钥)
    • 将授权用户添加到Firbase上的授权帐户列表中,并使用自定义声明和数据库规则限制访问
    我的问题是:

    • 似乎https函数(选项1)通常用于API构建。选项2和3是否不安全
    • 这3个选项的正常使用情况是什么?什么时候应该使用每种方法,什么时候应该避免使用每种方法
    • 我对选项3的选择是否有明显的缺陷
    • 我们将非常感谢关于做出这些设计决策的任何其他有用信息

    提前谢谢你

    TL;DL:这取决于你想用这个API做什么,调用它的设备/用户的数量和类型

    在回答您的问题之前,我将在下面列出每种方法的优点:

    • 云功能:
    云功能是一种服务功能解决方案,因此它也是API的托管服务,因此您不必配置、管理或升级服务器,API将根据负载自动扩展。此外,此选项还考虑了SDK和客户端库的优点,因为您的代码无论如何都必须使用它来连接Firestore

    • SDK和客户端库:
    <>这是到达FixSt店的最简单和更优化的方法,但是,运行本地库的环境是不可能的,例如IOT设备将被排除在您的解决方案之外,因此在实现此选项时考虑这一点。
    • 云Firestore REST API:
    每台获得Firestore访问权限的设备都可以访问Firestore

    < Stime> Note :对于SDK和REST API,您需要考虑API的托管,无论是在云函数上,如AppEngine标准、AppEngine Flex或是计算引擎服务器实例。 综上所述,考虑到以上几点,您和您的API的使用和要求决定哪个选项是最好的

    根据安全性,我认为如果firebase规则和firebase身份验证设置正确,则所有选项都是安全的