首页 > 解决方案 > 由于 FirebaseInstanceId() 已弃用,如何重写以下代码?

问题描述

该代码是从一个名为 realtime location firebase 的 Youtube 教程中找到的,它对我的​​最后一年项目很重要。我感谢我能得到的所有帮助。提前致谢。

private void updateToken(FirebaseUser firebaseUser) {
        DatabaseReference tokens = FirebaseDatabase.getInstance().getReference(Common.TOKENS);

        //Get Token
       FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
            @Override
            public void onSuccess(InstanceIdResult instanceIdResult) {
                tokens.child(firebaseUser.getUid()).setValue(instanceIdResult.getToken());
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(MainActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    }

标签: firebaseandroid-studio

解决方案


 private void updateToken(FirebaseUser firebaseUser) {
    DatabaseReference tokens = FirebaseDatabase.getInstance()
            .getReference(Common.TOKENS);

    FirebaseInstallations.getInstance().getId()
            .addOnCompleteListener(new OnCompleteListener<String>() {
                @Override
                public void onComplete(@NonNull Task<String> task) {
                    tokens.child(firebaseUser.getUid())
                            .setValue(task.getResult());
                }
            }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(MainActivity.this, "" + e.getMessage(),Toast.LENGTH_SHORT).show();
        }
    });
}

还可以在 build.gradle(:app) 中尝试一些依赖项

实施平台('com.google.firebase:firebase-bom:26.8.0')实施'com.google.firebase:firebase-database'


推荐阅读