如何从android库优雅地使用firebaseUI构建unity项目

如何从android库优雅地使用firebaseUI构建unity项目,android,firebase,unity3d,build,firebaseui,Android,Firebase,Unity3d,Build,Firebaseui,我正在尝试用firebase google和facebook登录创建一个游戏。我知道可以将firebase与unity一起使用,但我不想在存在FirebaseUI之类的东西时分别创建这两种登录方法 所以我创建了带有FirebaseUI身份验证的android插件。我在新的android项目中进行了测试,一切正常。但是当我在unity中使用我的插件时,我必须添加我自己的gradle(mainTemplate.gradle)和firebaseUI的依赖项 问题是firebase auth libra

我正在尝试用firebase google和facebook登录创建一个游戏。我知道可以将firebase与unity一起使用,但我不想在存在FirebaseUI之类的东西时分别创建这两种登录方法

所以我创建了带有FirebaseUI身份验证的android插件。我在新的android项目中进行了测试,一切正常。但是当我在unity中使用我的插件时,我必须添加我自己的gradle(
mainTemplate.gradle
)和firebaseUI的依赖项

问题是firebase auth library中有一个默认值,并且在构建游戏时,my library中的值(
default\u web\u client\u id
等)会被默认值覆盖

差不多过了一个星期,我找到了一个解决办法,但我希望有另一种方法

我的解决方案是:使用firebase构建android库,将库(
.aar
)复制到资产/插件,将带有此库的unity项目导出到Idea,然后将整个文件
values.xml
(从
谷歌服务.json
创建)和facebook appId复制到导出项目的res文件夹中。(然后根据想法构建)

它正在工作,但通过这种方法,我在项目中有3次
默认的web\u客户端id
(1次来自我的库,1次来自FirebaseUI依赖项,1次来自复制的
values.xml
,覆盖了它们)。这不是问题,但我认为没有必要

使用firebaseUI和android库还有更优雅的方式吗

mainTemplate(依赖项部分):


经过更多的实验后,我发现这取决于实现顺序,所以我将**DEPS**向上移动,现在它可以工作了

因此,解决方案很简单:

dependencies {
 implementation fileTree(dir: 'libs', include: ['*.jar'])
**DEPS**
 def room_version = "1.1.1"

 implementation "android.arch.persistence.room:runtime:$room_version"
 annotationProcessor "android.arch.persistence.room:compiler:$room_version"
 implementation 'com.google.code.gson:gson:2.8.2'
 implementation 'com.android.support:appcompat-v7:28.0.0'
 implementation 'com.android.support:support-v4:28.0.0'

 implementation "android.arch.lifecycle:extensions:1.1.1"
 implementation "android.arch.lifecycle:viewmodel:1.1.1"
 annotationProcessor "android.arch.lifecycle:compiler:1.1.1"

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
 implementation 'com.facebook.android:facebook-android-sdk:4.41.0'
}
希望这能帮助别人

dependencies {
 implementation fileTree(dir: 'libs', include: ['*.jar'])
**DEPS**
 def room_version = "1.1.1"

 implementation "android.arch.persistence.room:runtime:$room_version"
 annotationProcessor "android.arch.persistence.room:compiler:$room_version"
 implementation 'com.google.code.gson:gson:2.8.2'
 implementation 'com.android.support:appcompat-v7:28.0.0'
 implementation 'com.android.support:support-v4:28.0.0'

 implementation "android.arch.lifecycle:extensions:1.1.1"
 implementation "android.arch.lifecycle:viewmodel:1.1.1"
 annotationProcessor "android.arch.lifecycle:compiler:1.1.1"

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
 implementation 'com.facebook.android:facebook-android-sdk:4.41.0'
}