首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我在gradle中插入实现'com.google.firebase:firebase-admin:6.13.0‘,然后Firebase.auth.currentUser变得无效?

在gradle中插入实现'com.google.firebase:firebase-admin:6.13.0'后,Firebase.auth.currentUser变得无效的原因可能是由于以下几个方面:

  1. 版本冲突:可能存在与'com.google.firebase:firebase-admin:6.13.0'不兼容的其他依赖库或版本冲突。这可能导致Firebase.auth.currentUser无效。解决方法是检查gradle文件中的其他依赖项,并确保它们与Firebase-admin库兼容。
  2. 配置错误:可能在添加Firebase-admin库时出现了配置错误。请确保在gradle文件中正确添加了Firebase-admin库的依赖项,并且已经进行了必要的配置,例如在AndroidManifest.xml中添加了Firebase的初始化代码。
  3. 认证状态问题:Firebase.auth.currentUser无效可能是由于认证状态的问题导致的。请确保在使用Firebase.auth.currentUser之前,已经进行了正确的用户认证操作,例如登录或验证用户凭据。

需要注意的是,以上提供的答案是基于一般情况下的推测,具体原因可能需要进一步的调试和分析。如果问题仍然存在,建议查阅Firebase官方文档、社区论坛或联系Firebase支持团队以获取更详细和准确的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

集成推送那点事-友盟Mob-FlutterFCM

这里就挑用过的几个来做一个简单对比,毕竟鸡老大说了,连基本的论证对比都没,你还玩个锤子(瞎编的)。 下面从个人关注的几个维度进行简单的对比 (❌:代表不支持,✅:代表支持。...关于友盟推送需要离线厂商推送,所以涉及到大部分的配置项,这里直接提取一个 gradle,避免主 gradle 各种杂乱不堪。...gradle 也就是 app 下的 gradle 添加对此依赖: // 友盟推送 apply from: 'UMeng_Push.gradle' 1.2 初始化友盟推送并设置通知栏点击动作 Application...3.3 FCM 消息处理 app build 完善下依赖: // FCM implementation 'com.google.firebase:firebase-analytics:17.4.4...classpath 'com.mob.sdk:MobSDK:+' } 其次,app 下 build 文件添加对应的配置项,这里关于 Mob 的配置可单独提取一个 gradle 文件,这里当初为了实现实现

11.2K41

Android Gradle 同步优化

image.png 然后通过我们的一个monitor插件,看了大概一个礼拜的同步相关的编译日志,发现了一蛛丝马迹的。...其中之前哔哩哔哩Android编译优化的独立编译单元,有介绍过对于所有依赖全部切换成源码之后因为工程太多,所以展开速度过慢的优化思路。...简单的说我们将一个的大的工程结构拆分成若干小的而且独立的部分,然后业务同学各自小的独立的编译单元中进行自己的工作流,之后大家不会改动到的模块就会自动的切换成aar产物,避免了无效工程结构的展开。...为什么jetifier会选择在这个时机,而不是在打包流程进行对应的替换呢?其实在于他们并不仅仅要完成字节码上的转化操作,另外还要对资源文件也进行同样的清洗,比如layout文件的。...这个值已经在内存中被Gradle持有,重新设置是无效的。

69210

gradle究竟为何频频出错 as的学习笔记

二、此时已经安装并打开as了,但是打开了某个工程后它跟我说module sdk is not defined,选择旁边的setup sdk,选择了android api29的,然后等了一盏茶的功夫它才安装好...打开一个项目,首先Sync Project with Gradle Files,然后Android studio会自动更新新的gradle,不用等它更新就可以停止了,然后打开项目的 gradle–>wrapper...文件添加如下配置信息: org.gradle.jvmargs=-Xmx512m 二、由于国内访问jcenter太慢可能导致各种各样的gradle错误,可以更换成阿里的jcenter镜像(也可以说是...target with hash string 'android-26' in: C:\Users\ASUS\AppData\Local\Android\Sdk 缺少对应版本sdk as tools...文件夹里建立gradle.properties文件以避免宕机(特别是你的内存只有2GB)③新建一个项目后,修改项目中的build.gradle文件的jcenter为国内阿里镜像,以预防各种gradle

5.2K00

Gradle for Android 系列:为什么 Gradle 这么火

Ant 和 Maven 写的更清晰、简洁,下面是实现同样目标的 Maven 代码和 Gradle 代码对比: Gradle 既有 Ant 的强大和灵活,又有 Maven 的依赖管理,支持插件且易于使用...Gradle 设计的方式使得它可以很容易地扩展构建和插入到现有的构建过程,Google 推广 Gradle 和 Android Studio 时,目标是让代码复用、构建 variant、配置和定制构建过程变得更加简单...,因此配置阶段 Gradle 会生产依赖关系图,没有依赖的任务通常会被优先执行,然后一个接一个执行其他任务。...因此我们甚至都不需要安装 gradle,直接使用 gradle wrapper 即可,就像 Android Studio 里推荐的一样: 上图并没有使用 wrapper,是因为当你运行 gradlew...这篇文章对比 Ant 和 Maven 泛泛而谈了 Gradle 的一些优点,在理解 Gradle 为什么会被使用、它有什么优点之后,有助于我们后续深入学习 Gradle 的使用。

1.3K81

想读Spring源码?先从这篇「 极简教程」开始吧...

为什么要阅读源码?这是一个有趣的问题,类似的问题还有,为什么要看书?为什么要爬山? 这也是一个哲学问题,想每个人都有不同的答案,下面是对阅读源码好处的一些思考。...2.让自己变得更加优秀 学习源码可以让我们站在巨人的肩膀上,你可以学习源码的优秀编码技巧和巧妙的设计思路,以及设计模式的落地应用,还有一些经典的编码规范和命名规则等。...3.找到更好的工作 日益竞争激烈的面试,尤其是大厂的面试,对于源码的考察非常看重,只有了解和熟悉这些源码,才能获得自己想要的 offer。 那既然阅读源码有这么多的好处,我们该如何开始呢?...阅读源码的实现思路是这样的,首先我们需要下载 Spring 源码,然后把 Spring 的源码导入到 IDE 然后再编译 Spring 源码,再以添加 Module 的方式添加测试代码,再把 Spring... 源码部分引入到 Module ,此时我们就可以使用调试功能进入 Spring 框架的内部,查看方法的执行流程和源码的具体实现

4K53

走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven

1.3 为什么要用Maven Maven之前我们经常使用Ant来进行Java项目的构建, 然后Ant仅是一个构建工具, 它并未对项目的的工程依赖以及项目本身进行管理, 并且Ant作为构建工具未能消除软件构建的重复性....+'”,Gradle中支持动态的版本依赖,版本号后面使用+号可以实现动态的版本管理。...解决依赖冲突方面Gradle实现机制更加明确,两者都采用的是传递性依赖,而如果多个依赖项指向同一个依赖项的不同版本时可能会引起依赖冲突,Maven处理起来较为繁琐,而Gradle先天具有比较明确的策略...对于子模块的定义放置settings.gradle文件,每一个模块代表project的对象实例,parent的build.gradle通过allproject或subprojects对这些对象进行操作...如果在Gradle项目中使用了Maven项目结构的话,Gradle无需进行多余的配置,只需文件包括apply plugin:'java',系统会自动识别source、resource、test

1.2K20

走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven

1.3 为什么要用Maven Maven之前我们经常使用Ant来进行Java项目的构建, 然后Ant仅是一个构建工具, 它并未对项目的的工程依赖以及项目本身进行管理, 并且Ant作为构建工具未能消除软件构建的重复性....+'”,Gradle中支持动态的版本依赖,版本号后面使用+号可以实现动态的版本管理。...解决依赖冲突方面Gradle实现机制更加明确,两者都采用的是传递性依赖,而如果多个依赖项指向同一个依赖项的不同版本时可能会引起依赖冲突,Maven处理起来较为繁琐,而Gradle先天具有比较明确的策略...对于子模块的定义放置settings.gradle文件,每一个模块代表project的对象实例,parent的build.gradle通过allproject或subprojects对这些对象进行操作...如果在Gradle项目中使用了Maven项目结构的话,Gradle无需进行多余的配置,只需文件包括apply plugin:'java',系统会自动识别source、resource、test

1.1K00

Android APM 系列一(原理篇)

项目中的应用,以及如何开发一个 Gradle Plugin; 实现篇-Javassist/ASM:Javassist、ASM 等字节码操作库的介绍,以及如何使用它们在编译时插入代码来采集各项性能数据;...这也是为什么会将 APM 作为一个系列来介绍的原因,同时这也能保证后面介绍 APM 的时候能够深入到实现细节,避免泛泛而谈。 二....我们只需要实现一个自定义的 Gradle Plugin,然后在编译阶段去修改字节码文件。对于 Gradle Plugin 的具体实现后面的文章再做详细讲解。 四....总结 Android APM 的原理其实非常简单,用一句话总结就是: 依据打包原理, class 转换为 dex 的过程,调用 gradle transform api 遍历 class 文件,借助...至于为什么放到后面……因为很多东西自己没做过也不知道啊……? ----

5.8K51

Android 性能监控系列一(原理篇)

项目中的应用,以及如何开发一个 Gradle Plugin; 实现篇-Javassist/ASM:Javassist、ASM 等字节码操作库的介绍,以及如何使用它们在编译时插入代码来采集各项性能数据;...这也是为什么会将 APM 作为一个系列来介绍的原因,同时这也能保证后面介绍 APM 的时候能够深入到实现细节,避免泛泛而谈。 二....我们只需要实现一个自定义的 Gradle Plugin,然后在编译阶段去修改字节码文件。对于 Gradle Plugin 的具体实现后面的文章再做详细讲解。 四....总结 Android APM 的原理其实非常简单,用一句话总结就是: 依据打包原理, class 转换为 dex 的过程,调用 gradle transform api 遍历 class 文件,借助...至于为什么放到后面……因为很多东西自己没做过也不知道啊…… 如果你喜欢的文章,就关注下的公众号 BaronTalk 、 知乎专栏 或者 GitHub 上添个 Star 吧!

1.6K70

想变成光 | 2022 安卓年终总结

Milestone 其实还是纠结到底使用roadmap还是milestone,你问我为什么用因为就和为什么阿里喜欢说抓手是一样的,装逼如风常伴我身。...这个是年初做的一个东西吧。其实一开始对他的定义是司的monorepo的2.0版本,我们的工程架构哦,其实是把一个巨型工程拆分成多个大型的业务,然后用搭积木的形式把这些组合在一起。...我们会基于一个yaml文件来定义出一个proto的子模块,然后把这个库的proto依赖也都生成好,然后转化成一个gradle module,然后以这个proto的gitsha作为缓存的唯一标识,提高缓存命中率...以前就觉得其实两者差距不太大,除了version catalog能使用在buildscript内意外,最近实际接入的时候发现文件和代码差距真的很大,我们项目内有很多非常风骚的对于某个ext进行插入的操作...文件,通过正则匹配出dependcies, 然后把一些ext很风骚的语法去掉,降了一个人的本,增了一个人的效。

33030

使用ARouter进行Android模块化开发

Android模块化 关于为什么要进行Android模块化开发,网上也已经讲烂了,不过归结起来,大体是可以总结为:App开发的初期,代码量不大,业务量比较少,一个App作为一个单独的模块进行开发,往往问题不大...extend Activity { ... } 初始化SDK if (isDebug()) { // 这两行必须写在init之前,否则这些配置init过程中将无效...gradle.properties配置 主项目的gradle.properties需要设置一个开关,用来控制module的编译模式,例如: isModule=false 当isModule为false...gradle配置 为了完成切换,还需要对module的build.gradle文件进行配置,如下图: 宿主app配置 接下来,宿主app的build.gradle添加模块依赖,如下所示: dependencies...,但是onNewIntent的intent和在onCreate方法的intent并不相同,所以需要在onNewIntent方法调用setIntent方法,然后就能得到参数了。

1.4K30

造轮子系列 —— 方法插桩

由于业务拓展时刻在变化,我们不得不去造一个适应业务的轮子,造轮子之前,我们先列几个比较热门的框架进行比较,列出优缺点,然后再总结自己实现的轮子 方案比较 框架 性能 技术实现 方法参数获取 混淆 范围...3、Matrix Matrix 是腾讯的一款 APM 框架, matrix-gradle-plugin 模块实现了对方法的插桩,具体原理可以参考的文章《Matrix 之 TraceCanary 源码分析...Mamba out", 0).show(); } 缺点就是,基础类型需要装箱成引用类型,存储到 Object 数组 Mamba 实现 Mamba 采用 gradle-plugin 和 asm 实现的方法插桩...Mamba 插入的字节码为什么是 Class、MethodName、Method Params 呢?...为了解决硬编问题,想到的一个解决方案就是:将需要埋点的地方写成函数调用,然后将需要记录的变量作为函数的参数,然后给函数标记 @Track,然后 Mamba 会根据 @Track 注解自动去实现方法和参数的插桩

65820

Android更整洁的接入Sonarquebe | initscript 拓展

但是由于是用gradle插件实现的,这样就会对build.gradle进行不可避免的侵入,也会不可避免的出现一些条件判断语句。...首先我们pipeline阶段会主动执行gradlew sonar这个任务,那么我们也能插入--initscript之后带入这个gradle脚本。...:sonarqube-gradle-plugin:3.5.0.2730" } } // 测试结果告诉,如果加的太早会导致classloader不是同一个,然后安卓工程就无法被识别.../gradlew --init-script sonar.gradle sonar 通过上述手段我们就可以把所有逻辑都收在一个sonar.gradle然后initscript插入就行了。...还能做些啥 其实还用--init-script完成了我们pipeline的增量的UnitTest的逻辑,根据当前的git diff之后,判断变更的模块是否包含UnitTest然后执行UnitTest

23630

Gradle 奇淫技巧之initscript pluginManagement

背景 我们的工程结构是单仓,然后通过gradle提供的复合构建(ComposeBuilding) 的机制来完成整个单仓模式的。...奇怪的知识 接下来一个个知识点慢慢分析,然后让大家知道都干了些啥。 demo工程地址在这里 initscript 这个是gradle 藏的比较深的方法,正常情况下会放在.gradle目录下。...image.png PluginManagement这个是gradle一直推广的新特性了,AS的大黄蜂版本已经最为默认配置更新了,我们后续只需要像上图一样,根节点通过pluginName+version...将我们手动生成的build的initscript插入到全局的gradle.initScripts中去。...总结 有一说一,还是从大佬身上学习到不少很好玩的操作的,最近转到编译组了,做的内容其实挺有意思的,这部分也是从大佬的代码剥离出来的。

1.8K10

如何让你的lint检查更加高效?

这里做了一件什么事情呢:通过DelegateClassLoader去加载com.android.tools.lint.gradle.LintGradleExecution这个类,然后通过反射的方式来实例化...因此,我们可以将含有自定义类LintGradleExecution的url插入到url列表的最前面,这样执行loader.loadClass("com.android.tools.lint.gradle.LintGradleExecution...那如何插入自定义的url?...最开始的思路是针对每一个变量,参考AndroidGradlePlugin的实现对其进行赋值,发现需要拷贝大量AndroidGradlePlugin里的代码实现,并且经过多次尝试,总有赋值错误或者赋值不完全的情况存在...为什么这三个变量的设置会非常复杂呢?因为每个变量的类型里又有很多其他的属性需要设置,层层嵌套之后,对这些属性赋值就变得异常繁琐。最终这种方案以失败告终。 有没有一种省时省力又不会出错的方案呢?

3.3K20

工具篇 | Gradle入门与使用指南 - 附Github仓库地址

Gradle不仅可以构建Java应用程序,还支持多种语言和技术,例如C++、Python、Android等。更多信息和详细文档可以Gradle官方网站上找到。1.2 为什么选择Gradle?...基础概念3.1 项目和任务Gradle,构建是由项目和任务组成的。...3.4 插件插件扩展了Gradle的功能,使得常见的构建任务和配置变得简单。例如,Java插件为Java项目添加了常见的任务,如编译和打包。使用插件通常是通过构建脚本声明它们来完成的。...试试 src/main/resources 添加、修改或删除文件,然后再次运行任务。你会看到只有发生变化的文件才会被处理。这就是一个简单的增量构建示例。...这样做的好处是可以确保每个开发者和持续集成工具都使用相同版本的Gradle,避免了“的机器上可以运行”这样的问题。

1.5K40

还在用build.gradle吗?试试build.gradle.kts吧

build.gradle和我们的编译息息相关,而且编译相关的对于一个安卓开发其实还是非常重要,而且也是息息相关的。Groovy的动态化也是有取舍的,下面略列下开发过程碰到的问题吧。...如果我们能使用Kotlin编写Gradle脚本的时候,你会发现一切都变得有趣起来,嘴角开始微微上扬。...Gradle Kotlin DSL 1.0 Gradle官方其实在18年底就已经正式发布了kts的第一个版本了。那么话不多,为什么我们不试试呢。...,而com.android.library的则是另外一个实现类LibraryExtension,相对而言他的字段属性就会更少一点,有兴趣的大佬可以自行跟踪翻查源代码。...个人看法并不是啊,最新的as,其实对于gradle的源码跟踪其实就已经非常不错了。

4.8K20

Gardle 是什么

写在前面的话,最近在系统的学习Gradle,本来想写一篇关于 Gradle 的介绍。 但在官网发现了这篇关于 Gradle 的介绍,已经介绍的很好了,就很直接翻译过来了。...它有以下几个显著的优点: 高性能 Gradle 只运行那些输入和输出有改变的任务,从而避免无效的工作。另外,还可以通过缓存开关重用之前的任务输出(其他的机器上的缓存也是可以的)。...这很重要,因为配置阶段评估的代码不会看到执行阶段发生的更改。 配置阶段另一个重要的方面是每次构建都会对其中涉及的所有内容做评估。这也是为什么应该在配置阶段避免多余的工作。...最好将编写的任务源文件放在 buildSrc 目录或者打包一个插件,然后你就可以像使用其他的Gradle 任务那样使用了。...有一个常见的误解是Gradle的强大和灵活是因为它的脚本是代码,其实并不是。提供这种的能力的是底层模型和API。就像我们在实践建议的那样,你不应该放太多命令式逻辑脚本里。

60420

Jetpack 系列之AppSearch

引入相关库 首先我们build.gradle引入AppSearch组件的相关库,代码如下所示: def appsearch_version = "1.0.0-alpha01" implementation...我们build.gradle引入guava库,代码如下所示: implementation("com.google.guava:guava:30.1.1-android") 依赖之后,上述代码就可以正常运行了...为什么夸自己 这里我们搜索的关键字是handsome,新闻标题是 Huang Linqing is a handsome boy,黄林晴是个帅气的男孩,这里并不是故意夸自己的,而是在学习AppSearch...的使用时,发现了一个bug,那就是上面的代码如果插入的是中文,搜索时将不会得到任何结果,昨天晚上发现这个问题后将此问题提给了Google Google 也很快给了答复 不支持中文搜索,这是一个已知问题...,并且Google将在新版本修复,会尽快发布版本,所以我们新版本发布前知道有这个问题就行了,避免无效检查自己的代码问题。

62610
领券