相关疑难解决方法(0)

如何通过HTTP REST API访问我的Firebase数据库?

由于这个答案,我可以通过HTTP REST API和电子邮件/密码连接到Firebase 3.使用此API登录会返回用于访问Firebase数据库的访问令牌.此访问令牌在1小时后到期.登录后还会返回刷新令牌,我可以使用它来刷新访问令牌.这是我具体做的事情:

方法:

POST
Run Code Online (Sandbox Code Playgroud)

网址:

https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=<my-firebase-api-key>
Run Code Online (Sandbox Code Playgroud)

有效载荷:

{
    email: "<email>",
    password: "<password>",
    returnSecureToken: true
}
Run Code Online (Sandbox Code Playgroud)

响应:

{
    "kind": "identitytoolkit#VerifyPasswordResponse",
    "localId": "<firebase-user-id>", // Use this to uniquely identify users
    "email": "<email>",
    "displayName": "",
    "idToken": "<provider-id-token>", // Use this as the auth token in database requests
    "registered": true,
    "refreshToken": "<refresh-token>",
    "expiresIn": "3600"
}
Run Code Online (Sandbox Code Playgroud)

在刷新我的访问令牌的情况下:

网址:

https://securetoken.googleapis.com/v1/token?key=<my-firebase-api-key>
Run Code Online (Sandbox Code Playgroud)

有效载荷:

{
    grant_type: "refresh_token",
    refresh_token: "<refresh-token>"
}
Run Code Online (Sandbox Code Playgroud)

响应:

{
  "access_token": "<access-token>",
  "expires_in": "3600",
  "token_type": "Bearer",
  "refresh_token": "<refresh-token>",
  "id_token": "<id-token>",
  "user_id": "<user-id>",
  "project_id": …
Run Code Online (Sandbox Code Playgroud)

access-token firebase firebase-authentication firebase-realtime-database refresh-token

13
推荐指数
1
解决办法
2万
查看次数

无法通过HTTP/REST错误访问FireBase数据库403禁止访问

用于服务器+ Xcode 8.1的Swift + Vapor框架

我正在尝试阅读Firebase实时数据库向我的数据库发出HTTP请求,但我得到了许可被拒绝.

以下是这些步骤:
1.使用从"console.developers.google.com"下载的密钥创建JWT签名
2.将POST请求发送到OAuth2服务器并获取访问令牌
3.将GET请求发送到firebase数据库,并从中接收访问令牌OAuth2服务器.

我得到"权限被拒绝",HTTP/1.1 403禁止

// the header of the JSON Web Token (first part of the JWT)
let headerJWT = ["alg":"RS256","typ":"JWT"]

// the claim set of the JSON Web Token
let jwtClaimSet =
  ["iss":"firebase-adminsdk-kxx5h@fir-30c9e.iam.gserviceaccount.com",
 "scope":"https://www.googleapis.com/auth/firebase.database", //is this the correct API to access firebase database?
 "aud":"https://www.googleapis.com/oauth2/v4/token",
 "exp": expDate,
 "iat": iatDate]


drop.get("access") { request in
var accesstoken = "ya29.ElqhA-....XXXX"

 let responseFirebase = try drop.client.get("https://fir- 30c9e.firebaseio.com/data/Users.json",
  headers: ["Authorization":"Bearer \(accesstoken)"], 
     query: [:])

print("FirebaseResponse_is \(responseFirebase)")
return "success" …
Run Code Online (Sandbox Code Playgroud)

firebase service-accounts firebase-realtime-database vapor

13
推荐指数
2
解决办法
8239
查看次数

如何使用javafx的firebase

我正在构建一个桌面应用程序,我想使用直观的firebase API进行实时数据同步.我一直在网上搜索,但没有人指出要使用的Jars以及如何使用firebase应用程序进行配置.如果你能协助请给我一些步骤.我擅长以下步骤.我想为所有firebase操作创建一个帮助器类.

javafx firebase

6
推荐指数
1
解决办法
4057
查看次数

使用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
查看次数

Firebase 身份验证与 Google Identity Toolkit 定价

我看到 Firebase 在 Firebase Admin 中没有添加服务器身份验证 API,但只有用户管理(CreateUser 和 UpdateUser)。

Firebase 仅通过依赖于 Google Identity Platform 的客户端库提供登录 ( https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword )

进一步探讨后,我结束了在寻找火力地堡验证REST API(实现了它太伟大工程)在这里。此 API 参考非常适合通过 REST API 实现身份验证并避免对客户端库的依赖。因为这有助于通过云功能进行完整的服务器端身份验证。

谈到定价,Firebase 提到 Auth 不需要任何费用,因为 Google Identity 平台的定价非常高。

所以想知道 Firebase 团队对此有何看法或任何对此进行过探索的人。

firebase google-identity-toolkit firebase-authentication

5
推荐指数
0
解决办法
702
查看次数