如何获得Firebase设备令牌(如字符串)?

时间:2018-11-27 17:07:50

标签: android firebase google-cloud-messaging android-devicetoken

我想在向服务器发送会员信息时发送设备令牌信息。

但是由于getToken不再使用,该怎么办?

我以前一直在使用它:

params.put("deviceToken", FirebaseInstanceId.getInstance().getToken());

工作简单,但getToken已弃用

}, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Registration Error: " + error.getMessage());
            Toast.makeText(getApplicationContext(),
                    error.getMessage(), Toast.LENGTH_LONG).show();
            hideDialog();
        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            // Posting params to register url
            Map<String, String> params = new HashMap<String, String>();
            params.put("name", name);
            params.put("email", email);
            params.put("password", password);
            params.put("deviceToken", deviceTokenID); <<<---- DEVICE ID TOKEN

            return params;
        }

    };

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(strReq, tag_string_req);

2 个答案:

答案 0 :(得分:1)

要解决此问题,您需要像下面的代码行一样使用成功的侦听器:

FirebaseInstanceId.getInstance().getInstanceId()
    .addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
        @Override
        public void onSuccess(InstanceIdResult instanceIdResult) {
            String tokenId = instanceIdResult.getToken();
            //Do what you need to do with the token
        }
});

答案 1 :(得分:0)

 String deviceToken= FirebaseInstanceId.getInstance().getToken();
 params.put("deviceToken", deviceToken);