【问题标题】:How get Firebase Device Token like string?如何获取 Firebase 设备令牌之类的字符串?
【发布时间】:2018-11-27 17:07:50
【问题描述】:

我想在发送会员信息到服务器时发送设备Token信息。

但是由于 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);

【问题讨论】:

  • 你必须先调用getToken。成功后,调用你需要的函数,传递getToken结果。
  • getToken 现已弃用
  • 是的。我认为getInstanceId.getId() 是一种获取令牌的方法。相同的方法。首先调用以获取令牌,然后执行您的功能。
  • 我可以使用getInstanceId.getId() 向 Firebase 中的用户发送通知吗?

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


【解决方案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
        }
});

【讨论】:

  • 我在很多网站上都看到过你的共享代码,但我无法使用。如何将其添加到params.put?我做不到,因为我的 Java 知识不好
  • 您的问题是:“如何获取 Firebase 设备令牌之类的字符串?”我已经提供了答案。这是另一个超出此问题范围的问题。请提出另一个问题来解释问题,以及您已经尝试解决的问题,以便我和其他用户可以帮助您。
  • 如果您仍然认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记 (✔️) 来接受它。应将颜色更改为绿色。我会很感激的。谢谢!
【解决方案2】:
 String deviceToken= FirebaseInstanceId.getInstance().getToken();
 params.put("deviceToken", deviceToken);

【讨论】:

  • 添加一些解释
  • getToken 现已弃用
猜你喜欢
  • 2017-08-21
  • 2017-09-27
  • 2012-12-15
  • 2012-10-02
  • 2018-08-21
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多