无法从共享首选项获取firebase令牌?

时间:2016-12-17 04:13:38

标签: android firebase sharedpreferences firebase-cloud-messaging

我在我们的应用中使用Firebase Cloud Messaging来显示推送通知。根据FirebaseInstanceId doc。

当新用户安装我的应用时,会自动调用onTokenRefresh()。

现在我想将令牌发送到我的服务器以将其存储在数据库中。 token存储在数据库中,带有null。所以我无法从共享偏好中获取令牌。

InstanceIdService代码:

public class FcmInstanceIdService extends FirebaseInstanceIdService {
    @Override
    public void onTokenRefresh() {
        String recent_token = FirebaseInstanceId.getInstance().getToken();
        SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getString(R.string.FCM_PREF), Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(getString(R.string.FCM_TOKEN),recent_token);
        editor.commit();
    }
}

在按钮上单击我将令牌发送到服务器,代码:

String app_server_url = "http://192.168.1.1/fcm/fcm_insert.php";

btnSendFcm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

    SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getString(R.string.FCM_PREF), Context.MODE_PRIVATE);
    final String token = sharedPreferences.getString(getString(R.string.FCM_TOKEN),"");
    Toast.makeText(getApplicationContext(),token+"-1-",Toast.LENGTH_SHORT).show();
    StringRequest stringRequest = new StringRequest(Request.Method.POST, app_server_url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    })
    {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String,String> params = new HashMap<String, String>();
            params.put("fcm_token",token);

            return params;
        }
    };
    MySingleton.getmInstance(MainActivity.this).addToRequestque(stringRequest);
}
});

当我检查设备上的共享偏好数据时,创建了两个文件: - 1)com.google.android.gms.appid.xml 2)com.google.android.gms.measurement.prefs.xml

com.google.android.gms.appid.xml中的数据

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="|T|119518470744|*">{&quot;token&quot;:&quot;here are some data&quot;,&quot;appVersion&quot;:&quot;1&quot;,&quot;timestamp&quot;:1481693481269}</string>
    <string name="|S||P|">here are some data</string>
    <string name="|S|cre">here are some data</string>
    <string name="|S||K|">here are some data</string>
</map>

我检查过很多文章,但无法解决。任何人都可以建议我为此做些什么。

0 个答案:

没有答案
相关问题