对令牌感到困惑

时间:2019-11-14 01:59:56

标签: java android firebase firebase-cloud-messaging

我一直在研究用户令牌,以向该用户发送特定的推送通知。这是我创建的两个令牌,用于放入Firebase。

public void getDeviceToken(){
        FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser();
        String device_token = FirebaseInstanceId.getInstance().getToken();
        String msg = getString(R.string.fcm_token, device_token);
        Log.d("device_token", msg); //first one [dfw-A....]

        mUser.getIdToken(true)
                .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
                    public void onComplete(@NonNull Task<GetTokenResult> task) {
                        if (task.isSuccessful()) {
                            String idToken = task.getResult().getToken();
                            String uid = m_auth.getCurrentUser().getUid();
                            Log.d("device_token2", idToken); //second one [eyJh...]
                            DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users");
                            DatabaseReference id = ref.child(uid);
                            id.child("token").setValue(idToken);
                        } else {
                            Log.e("Main_Err", "token" , task.getException());
                            // Handle error -> task.getException();
                        }
                    }
                });
    }

我想知道是否要使用用户令牌来推送通知,我应该使用哪一个? [1 /或2]

2 个答案:

答案 0 :(得分:0)

要使用Firebase Cloud Messaging发送通知,您应该使用FirebaseInstanceId.getInstance().getToken()中的设备ID令牌。 Firebase身份验证中的另一个用户ID令牌根本无法帮助您进行消息传递。

有关更多具体示例和完整示例,请参见documentation

答案 1 :(得分:0)

使用String device_token = FirebaseInstanceId.getInstance().getToken();

向用户发送通知,此令牌专门用于FCM