我的代码中存在的问题是,当用户登录其帐户时,firebase会保存新的设备令牌,而不会删除已存储在数据库中的旧设备令牌,从而将两个不同的设备令牌分配给一个帐户,因此如果我向通过我的设备登录的帐户发送消息。我们俩都会收到通知。
这是在LoginActivity
中获取设备令牌的代码
private void loginuser(String email, String password) {
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
String current_user_id = mAuth.getCurrentUser().getUid();
String tokenID = FirebaseInstanceId.getInstance().getToken();
mUserDatabase.child(current_user_id).child("device_token").setValue(tokenID).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
checkIfEmailsVerified();
}