我有一个使用Firebase和用户身份验证的Android应用。身份验证过程通过Facebook,Google或Twitter帐户完成,并将用户数据存储到Firebase中。
另一方面,我在App Engine中运行了一个Java Cloud Endpoint,它连接到Firebase以检索一些数据,并最终通过Google Cloud Messaging向其他用户发送消息。 Firebase会存储用户GCM令牌,如果某些GCM令牌无效或已更新,则Endpoint会连接到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令牌,我想在端点中实施身份验证过程,生成自定义令牌只是为了允许端点写入用户节点
这是要走的路吗?或者我完全错了?
答案 0 :(得分:2)
如果您希望Cloud Endpoint通过Firebase身份验证为“本身”,您可以将自定义令牌转换为authWithCustomToken
。请参阅文档中的此页面:https://www.firebase.com/docs/android/guide/login/custom.html
该过程类似于Jenny在How do you authenticate a server to Firebase?
中为Node.js所描述的内容