来自 Google Cloud Endpoint 的 Firebase 身份验证

Firebase authentication from Google Cloud Endpoint

我有一个 Android 应用程序,它使用 Firebase 进行用户身份验证。身份验证过程通过 Facebook、Google 或 Twitter 帐户完成,并将用户数据存储到 Firebase。

另一方面,我在 App Engine Java 运行 中有一个 Google Cloud Endpoint,它连接到 Firebase 以检索一些数据并最终向其他用户发送消息通过 Google 云消息传递。 Firebase 存储用户 GCM 令牌,如果某些 GCM 令牌无效或已更新,则端点连接到 Firebase 以将这些 GCM 令牌更新到用户节点中。

现在,我的用户节点安全规则如下:

"rules": {
"users": {
  ".read": "auth !== null",

  "$uid": {
    // grants write access to the owner of this user account whose uid must exactly match the key ($uid)
    ".write": "auth !== null && auth.uid === $uid" 

目前,Google Cloud Endpoint 不允许更新用户 GCM 令牌,我正在考虑在 Endpoint 中实施一个身份验证过程,该过程生成一个自定义令牌以允许端点写入用户节点。

这是要走的路吗?或者我完全错了?

如果您希望 Cloud Endpoint 以 "itself" 身份通过 Firebase 进行身份验证,您可以创建一个自定义令牌并将其传递到 authWithCustomToken。请参阅文档中的此页面:https://www.firebase.com/docs/android/guide/login/custom.html

该过程类似于 Jenny 在

中为 Node.js 描述的过程