与 Crashlytics 一起运行 Firebase-Auth + Firebase-UI

Posted

技术标签:

【中文标题】与 Crashlytics 一起运行 Firebase-Auth + Firebase-UI【英文标题】:Running Firebase-Auth + Firebase-UI alongside Crashlytics 【发布时间】:2017-11-27 06:17:54 【问题描述】:

我按照Firebase Auth UI page 中的步骤操作,以便在我的 android 应用中与电话号码验证提供商一起使用 Firebase 身份验证插件解决方案。我在我的项目中使用 Crashlytics,并且我正在从 Digits 迁移到 Firebase,所以这是 gradle 文件的相关部分:

// firebase dependencies
compile 'com.google.firebase:firebase-auth:11.0.1'
compile 'com.firebaseui:firebase-ui-auth:2.0.1'
compile 'com.firebase:digitsmigrationhelpers:0.1.1'
compile 'com.google.android.gms:play-services-auth:11.0.1'

// crashlytics
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') 
    transitive = true;


// digits (to be removed after migration is complete)
compile('com.digits.sdk.android:digits:2.0.2@aar') 
    transitive = true;

这就是我初始化 Fabric 的方式:

if (Constants.DEBUG)
    Fabric.with(context, new TwitterCore(authConfig), new Digits.Builder().withTheme(R.style.CustomDigitsTheme).build());
else
    Fabric.with(context, new TwitterCore(authConfig), new Digits.Builder().withTheme(R.style.CustomDigitsTheme).build(), new Crashlytics());

但是,当 Constants.DEBUG 为真时,我在 gradle 同步时收到以下错误(删除 Fabric init 中的 Digits 对象对此问题没有任何影响):

Error:Execution failed for task ':app:fabricGenerateResourcesDebug'.
> Crashlytics Developer Tools error.

(这里是pastebin of the stacktrace)

删除 Crashlytics 依赖项可暂时解决此问题。是否存在依赖冲突或者这是一个错误?

在我的项目中,我只有 crashlytics.properties 文件设置了相应的键(不是 fabric.properties 文件)。在将此依赖项添加到我的应用程序的模块 gradle 文件之前,我没有出现错误。

更新:我之前说过删除 Crashlytics 依赖解决了这个问题,但它实际上是 'com.firebaseui:firebase-ui-auth:2.0.1'包含在 gradle 文件中时产生错误的依赖项。

更新 2:感谢所有发表评论的人。研究堆栈跟踪输出,我发现更具描述性的错误是:

java.lang.IllegalArgumentException: Crashlytics found an invalid API key: @string/twitter_consumer_secret.

我会对此进行调查,尽管在我看来这个错误是由 'com.firebaseui:firebase-ui-auth:2.0.1' 依赖项特别触发的.

【问题讨论】:

来自 Fabric 的 Mike。你能分享你的面料初始化吗?另外,您是否有任何条件逻辑来禁用某些构建的 Fabric? 我正在使用 Crashlytics、Fabric 和 Firebase,但没有遇到此问题。您可以将堆栈跟踪复制到 pastebin 中吗? @dekaru 您是否设置了crashlytics.propertiesfabric.properties? ***.com/questions/28891325 感谢@MikeBonnell 和 jp-ventura,我已经更新了问题以详细说明您的 cmets。 谢谢,我认为您遇到的问题在这里解决了:gist.github.com/cutiko/0cab3fc3b53f339b2274f3667e058dc6 基于此对话:github.com/firebase/FirebaseUI-Android/issues/533 【参考方案1】:

firebase-ui-auth 存储库已更新,这不再是问题。以下 build.gradle sn-p 适用于我:

// firebase stuff
compile 'com.google.firebase:firebase-auth:11.2.0'
compile 'com.firebaseui:firebase-ui-auth:2.3.0'
compile 'com.firebase:digitsmigrationhelpers:0.1.1'
compile 'com.google.android.gms:play-services-auth:11.2.0'
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') 
    transitive = true;

【讨论】:

以上是关于与 Crashlytics 一起运行 Firebase-Auth + Firebase-UI的主要内容,如果未能解决你的问题,请参考以下文章

我可以将 Firebase Crashlytics 与工作人员服务一起使用来记录异常吗

与 Xcode 6.2 兼容的 Crashlytics

无法将 Eclipse 中的 crashlytics 与 ADT 集成

Crashlytics 在运行时未在 crashlytics.properties 中找到 API 密钥

当用户更改首选项时如何在运行时禁用 Crashlytics/Fabric

在 iOS 运行时禁用 crashlytics/Fabric