热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

未检索Firebase用户的显示名称和照片网址

如何解决《未检索Firebase用户的显示名称和照片网址》经验,您有什么比较好的解决方法?

我正在使用Firebase开发Android应用,在我的应用中,我正在使用Firebase匿名登录和Google登录.

如果用户未登录,则应用程序启动时,我将使用匿名身份验证来登录用户.

之后,当用户选择使用Google登录时,我将匿名帐户转换为永久帐户.

我在这里的问题是,当用户的帐户从匿名帐户转换为永久帐户(在这种情况下使用Google登录)时,我没有获得用户的显示名称和照片网址.

要从匿名帐户转换为永久帐户,我使用下面的代码.

    AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);

            mAuth.getCurrentUser().linkWithCredential(credential)
                .addOnCompleteListener(this, new OnCompleteListener() {
                    @Override
                    public void onComplete(@NonNull Task task) {
                        Log.d(TAG, "linkWithCredential:onComplete:" + task.isSuccessful());

                        if (!task.isSuccessful()) {
                            Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",Toast.LENGTH_SHORT).show();

//If Google Account already linked up with other UID
    Tasks.await(mAuth.signInWithCredential(credential)).getUser();
                        }

                    }
                });

登录过程完成后,将调用AuthStateListener onAuthStateChanged,然后在onAuthStateChanged中,我将提取用户的显示名称,用户的照片URL和用户的电子邮件.下面是onAuthStateChanged代码.

@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    if (user != null && !(user.isAnonymous())) {
    Log.d("userDetails", "UID: " + user.getUid());
    Log.d("userDetails", "Name: " + user.getDisplayName());
    Log.d("userDetails", "PhotoUrl: " + user.getPhotoUrl().toString());
    Log.d("userDetails", "Email: " + user.getEmail());
}

在日志中,我为user.getDisplayName()和user.getPhotoUrl()获取null

我不明白我做错了什么.请帮忙.

感谢和问候,


推荐阅读
author-avatar
天之蓝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有