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

配置文件更新后,FirebaseUser.isAnonymous()始终返回false(Firebase10.2.0)

如何解决《配置文件更新后,FirebaseUser.isAnonymous()始终返回false(Firebase10.2.0)》经验,应该怎么办?

我不知道这里可能出什么问题。我想知道用户是否匿名登录。我signInAnonymously()用于登录。一切正常工作。但是,FirebaseAuth.getInstance().getCurrentUser().isAnonymous()始终调用会返回false。我在Firebase控制台中验证了该用户ID实际上是匿名的。这里可能出什么问题?

。:编辑:。 更新的代码-添加的配置文件更新代码-添加的匿名用户初始化代码

public final void initiateAnonymousSignIn(@NonNull final String displayName, @Nullable final Bitmap avatar) {
    onRegistrationProgressStarted();

    Task signInTask = FirebaseAuth.getInstance().signInAnonymously();
    signInTask.addOnCompleteListener(this, new OnCompleteListener() {
        @Override
        public void onComplete(@NonNull Task task) {
            if (task.isSuccessful()) {
                AuthResult result = task.getResult();
                FirebaseUser user = result != null ? result.getUser() : null;
                if (user != null) {
                    Log.d(getTag(), "Signed in anonymous user is "
                            + (user.isAnonymous() ? "anonymous." : "not anonymous."));
                }
                UserService.isLoggedInWithAnonymousUser();

                onRegistrationProgressFinished(true, null, AuthProvider.ANONYMOUS, displayName, avatar);
            } else {
                // Wrap FirebaseExceptions for better error handling.
                onRegistrationProgressFinished(false, wrapFirebaseException(task.getException(), null),
                        AuthProvider.ANONYMOUS, displayName, avatar);
            }
        }
    });
}

public void initiateUserAfterRegistration(@Nullable final String newDisplayName, @Nullable final Bitmap newAvatar) {
    final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

    if (user == null) {
        onUserLoadingFinished(null, DatabaseError
                .fromException(new Exception("Can't initiate user after registration. User is not signed in.")));
        return;
    }

    if (newDisplayName != null) {
        Task updateTask = updateProfile(user, newDisplayName);
        updateTask.addOnCompleteListener(new OnCompleteListener() {
            @Override
            public void onComplete(@NonNull Task task) {
                // proceed anyway, no matter if the profile could be updated or not
                loadUserAndUpdateOrCreateIfNeeded(newDisplayName, newAvatar);
            }
        });
    } else {
        loadUserAndUpdateOrCreateIfNeeded(null, newAvatar);
    }
}

个人资料更新:

private Task updateProfile(@NonNull FirebaseUser user, @NonNull final String displayName) {
    UserProfileChangeRequest profileChangeRequest =
            new UserProfileChangeRequest.Builder().setDisplayName(displayName).build();
    Task updateTask = user.updateProfile(profileChangeRequest);
    updateTask.addOnCompleteListener(new OnCompleteListener() {
        @Override
        public void onComplete(@NonNull Task task) {
            if (task.isSuccessful()) {
                Log.i(TAG, "User profile updated successfully with new display name: " + displayName);
            } else {
                Log.w(TAG, "Could not update user profile with new display name.", task.getException());
            }
        }
    });

    return updateTask;
}

UserService.java

public class UserService {

    public static boolean isLoggedInWithAnonymousUser() {
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

        if (user != null) {
            Log.d(TAG, "Current user is " + (user.isAnonymous() ? "anonymous." : "not anonymous."));
        } else {
            Log.d(TAG, "Current user is null.");
        }

        return user != null && user.isAnonymous();
    }

}

这是我得到的意外输出:

03-19 01:48:38.385 6553-6565/com.myapp D/FirebaseAuth: Notifying listeners about user ( JCPHPVtShAf4QCPSUAYghteP2l32 ).
03-19 01:48:38.386 6553-6553/com.myapp D/FirebaseApp: Notifying auth state listeners.
03-19 01:48:38.386 6553-6553/com.myapp D/FirebaseApp: Notified 1 auth state listeners.
03-19 01:48:38.388 6553-6553/com.myapp D/LoginActivity: Signed in anonymous user is anonymous.
03-19 01:48:38.388 6553-6553/com.myapp D/UserService: Current user is anonymous.
03-19 01:48:38.956 6553-6553/com.myapp I/UserService: User profile updated successfully with new display name: asasdsd
03-19 01:48:39.143 6553-6588/com.myapp V/FA: Recording user engagement, ms: 25031
03-19 01:48:39.143 6553-6588/com.myapp V/FA: Using measurement service
03-19 01:48:39.143 6553-6588/com.myapp V/FA: Connecting to remote service
03-19 01:48:39.145 6553-6588/com.myapp V/FA: Activity paused, time: 11362503
03-19 01:48:39.146 6553-6588/com.myapp I/FA: Tag Manager is not found and thus will not be used
03-19 01:48:39.147 6553-6588/com.myapp D/FA: Logging event (FE): _e, Bundle[{_o=auto, _et=25031, _sc=LoginActivity, _si=-7803740637554967126}]
03-19 01:48:39.152 6553-6588/com.myapp V/FA: Using measurement service
03-19 01:48:39.152 6553-6588/com.myapp V/FA: Connection attempt already in progress
03-19 01:48:39.161 6553-6553/com.myapp D/Events: Registered AFragment
03-19 01:48:39.161 6553-6553/com.myapp D/AutoManageHelper: onStart true {0=com.google.android.gms.internal.zzaaa$zza@c70c388}
03-19 01:48:39.163 6553-6553/com.myapp D/MainActivity: onResume()
03-19 01:48:39.163 6553-6588/com.myapp V/FA: Using measurement service
03-19 01:48:39.163 6553-6588/com.myapp V/FA: Connection attempt already in progress
03-19 01:48:39.163 6553-6588/com.myapp V/FA: Activity resumed, time: 11362522
03-19 01:48:39.195 6553-6553/com.myapp I/MainActivity: onAuthenticated()
03-19 01:48:39.195 6553-6553/com.myapp D/UserService: Current user is not anonymous.

请注意登录后显示名称更新,然后是非匿名用户更新(在日志末尾)。配置文件更新后,匿名状态不同步可能是一个错误吗?


推荐阅读
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
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社区 版权所有