【发布时间】:2016-08-16 10:45:03
【问题描述】:
我是 firebase 新手,我有一个登录屏幕。成功登录后,我想调用 getToken 方法以及令牌,我还将用户登录 ID 保存在集中式服务器中。因此登录后我调用这两行。
FirebaseMessaging.getInstance().subscribeToTopic("test");
FirebaseInstanceId.getInstance().getToken();
我的服务如下
public class FirebaseInstanceIDService extends FirebaseInstanceIdService {
public static String busid;
@Override
public void onTokenRefresh() {
String token = FirebaseInstanceId.getInstance().getToken();
registerToken(token);
}
private void registerToken(String token) {
OkHttpClient client = new OkHttpClient();
business_login_id=Lib.GetPref(FirebaseInstanceIDService.this, "KEY_USER_ID", "");
RequestBody body = new FormBody.Builder()
.add("token",token)
.add("business_login_id", business_login_id)
.build();
Lib.Debug("Calling URL with body "+body.toString());
Request request = new Request.Builder()
.url("http://mywebsite.com/gcm/register.php")
.post(body)
.build();
try {
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的问题是:为什么服务 FirebaseInstanceIDService 正在执行而不管登录后屏幕并立即为应用程序创建令牌 ID(在我的情况下 business_login_id 为空)。
此时我的用户 ID 尚未登录。有什么方法可以使用正确的凭据来精确控制 POST 登录现在创建令牌吗?
【问题讨论】:
-
想知道为什么我的问题被否决了。当您在数据库服务器中保留多个元素时,这是一个独特的问题。
标签: android firebase-cloud-messaging