【问题标题】:Store token for FCM为 FCM 存储令牌
【发布时间】:2018-05-04 07:55:34
【问题描述】:

我正在尝试将我的令牌存储在我的云数据库中。稍后我将在云功能中使用此令牌,以便向已添加为朋友的用户发送通知。

但是推送设备令牌不起作用,因为用户未经授权。授权后无法保存,因为安装应用时会生成token。

 private static final String TAG = "FirebaseIDService";

    @Override
    public void onTokenRefresh() {
        // Get updated InstanceID token.
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        Log.d(TAG, "Refreshed token: " + refreshedToken);

        // TODO: Implement this method to send any registration to your app's servers.
        sendRegistrationToServer(refreshedToken);
    }

    /**
     * Persist token to third-party servers.
     *
     * Modify this method to associate the user's FCM InstanceID token with any server-side account
     * maintained by your application.
     *
     * @param token The new token.
     */
    private void sendRegistrationToServer(String token) {
        // Add custom implementation, as needed.
        FirebaseDatabase mFirebaseDatabase = FirebaseDatabase.getInstance();
        DatabaseReference deviceToken = mFirebaseDatabase.getReference("device_token");
        deviceToken.push().setValue(token).addOnCompleteListener(task -> {
            if (task.isSuccessful()) {
                Log.i("token push","Success!");
            } else {
                Log.i("token push","Failed !");
            }
        });
    }

【问题讨论】:

  • 听起来你只需要持有那个令牌,直到有一个成功的身份验证,然后写它。或者只有在有身份验证后才去获取那个令牌。
  • 为什么你不能使用 SharedPreferences 保存它,直到用户获得成功的身份验证?

标签: android google-app-engine firebase firebase-cloud-messaging


【解决方案1】:

将令牌保存在 SharedPreferences 中,成功登录后将令牌保存到 Firebase 数据库,请记住,如果您删除应用缓存或重新安装应用,令牌总是不同的

【讨论】:

    猜你喜欢
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2018-06-21
    • 2020-03-11
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    相关资源
    最近更新 更多