小编Mer*_*car的帖子

使用Firebase 3创建API

我有一个用例,我想创建一个API,允许我的Firebase Web应用程序的用户以编程方式从服务器访问他们的部分Firebase实时数据库.

我已经探索了几个选项,但是对于推进最佳方法的推荐会很棒.这是我到目前为止所尝试的:

  1. 使用服务帐户 -本来我想过让我的应用程序访问的用户,他们可以在自己的服务器上配置与火力地堡实时数据库交互的服务帐户.我通过将规则设置为仅允许具有特定userId的节点上的读/写访问来限制用户仅访问其数据库部分.让用户访问其userId允许用户写入他们的节点,但没有其他人.但是,我认为让用户访问Firebase服务帐户是非常不安全的,因此现在已经将此作为一种可行的方法.

  2. 电子邮件/密码REST Auth - 我通过REST发现了有关Firebase身份验证的帖子使用邮件和密码通过REST API [Firebase]进行身份验证.我已经测试了该方法并且它有效,所以我想我可以使用它来允许用户使用他们的电子邮件和密码以编程方式从他们的服务器登录Firebase,使用上述方法创建令牌,然后访问Firebase实时使用具有正常REST查询的令牌的数据库 - https://firebase.google.com/docs/reference/rest/database/#section-param-auth.虽然我认为这可行,但我知道它正在使用未记录/不支持的API,所以如果可能的话,我们希望避免使用它.

  3. 结束语在AWS LAMBDA一个火力地堡服务帐户 -我已经试过第三个选项是在AWS lambda函数包装一个火力地堡服务帐户工人,使用AWS API网关来创建用户可以调用的API,用户将包括其在用户id请求和在AWS Lambda上运行的服务帐户工作人员将对请求执行一些验证,然后对Firebase实时数据库进行更新.这与选项1基本相同,但隐藏了用户的服务帐户凭据,因此我认为这是安全的.这种方法的缺点是我将收到Firebase实时数据库调用和AWS Lambda/API网关调用的费用.

如果有人能就最好的方法提出建议,或者我还有其他选择没有考虑过,那就太好了!

rest firebase firebase-authentication firebase-realtime-database

5
推荐指数
1
解决办法
3453
查看次数