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

时间:2017-06-23 15:39:54

标签: android firebase firebase-authentication crashlytics firebaseui

我按照Firebase Auth UI page上的步骤操作,以便在我的Android应用中使用Firebase auth插件解决方案和电话号码验证提供商。我在我的项目中使用了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为true时,我在gradle同步时收到以下错误(删除Fabric init中的Digits对象不会对此问题产生任何影响):

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

(这是pastebin of the stacktrace

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

在我的项目中,我只使用相应的键(而不是 fabric.properties 文件)设置 crashlytics.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' 依赖。

1 个答案:

答案 0 :(得分:2)

firebase-ui-auth repo已经更新,这不再是问题了。以下build.gradle代码段适用于我:

// 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;
}