【问题标题】:FirebaseInstanceId.getInstance().getToken();. I am getting issue in refreshing tokenFirebaseInstanceId.getInstance().getToken();。我在刷新令牌时遇到问题
【发布时间】:2021-05-27 14:48:26
【问题描述】:

Class-MyFirebaseIdService.java

public class MyFirebaseIdService extends FirebaseInstanceIdService {

    @Override
    public void onTokenRefresh() {
        super.onTokenRefresh();
        FirebaseUser firebaseUser= FirebaseAuth.getInstance().getCurrentUser();
        String refreshToken= FirebaseInstanceId.getInstance().getToken();
        if (firebaseUser !=null)
        {
            updateToken(refreshToken);
        }
    }

    private void updateToken(String refreshToken)
    {
        FirebaseUser firebaseUser=FirebaseAuth.getInstance().getCurrentUser();
        Token token=new Token(refreshToken);
        FirebaseDatabase.getInstance().getReference("Tokens")
                .child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(token);
    }

}

类-Chatfragment.java

private void UpdateToken() {
    FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
    String refreshToken = FirebaseInstanceId.getInstance().getToken();
    Token token = new Token(refreshToken);
    FirebaseDatabase.getInstance().getReference("Tokens").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(token);
}

【问题讨论】:

  • 请编辑您的问题以显示您遇到的确切错误(和堆栈跟踪)。
  • “我在刷新时遇到问题”没有提供足够的信息,因此我们可以提供帮助。请在您的问题中添加 Frank van Puffelen 的要求。

标签: android firebase firebase-cloud-messaging


【解决方案1】:

FirebaseInstanceIdService 早就被弃用了。所以它不再起作用了。使用FirebaseMessagingService 并覆盖onNewToken 方法,它也会为您提供新的令牌。所以如下使用它

public class MyFirebaseIdService extends FirebaseMessagingService {

   @Override
   public void onNewToken(String token) {          
        updateToken(token);
       
    }

    private void updateToken(String refreshToken)
    {
        FirebaseUser firebaseUser=FirebaseAuth.getInstance().getCurrentUser();
        Token token=new Token(refreshToken);
        FirebaseDatabase.getInstance().getReference("Tokens")
                .child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(token);
    }

}

如需最新版本的 Firebase 消息,请访问 Latest SDK versions

希望它对你有用。

【讨论】:

  • 感谢 Saurabh,但在 Class-chatfragment 中我遇到了问题,因为我不能在 Updatetoken() 括号之间写任何东西。你能解决聊天片段问题吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-31
  • 2021-06-27
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
相关资源
最近更新 更多