我正在尝试用firebase谷歌和Facebook登录创建一个游戏。我知道可以使用单一的firebase,但我不想单独创建两个登录方法,就像FirebaseUI之类的东西一样。
所以我用FirebaseUI身份验证创建了android插件。我在新的android项目中测试了它,一切正常。但是当我在团结中使用我的插件时,我必须为firebaseUI添加我自己的gradle(mainTemplate.gradle
)依赖项。
问题是firebase auth库中有一个默认值,当构建游戏时,我的库(default_web_client_id
等)中的值会被默认值覆盖。
几乎在一周后我找到了解决方案,但我希望还有另一种方法。
我的解决方案:用firebase构建android库,将库(.aar
)复制到Assets / Plugins,用这个库导出unity项目到Idea,然后将整个文件values.xml
(由google-services.json
创建)和facebook appId复制到导出项目中的res文件夹。 (然后从Idea构建)
它正在工作,但是通过这种方法,我在项目中有3次default_web_client_id
(从我的库中获得1次,从FirebaseUI依赖中获得1次,从复制的values.xml
获得1次,这将覆盖它们)。这不是问题,但我认为没有必要。
有没有更优雅的方式来使用firebaseUI和android库?
mainTemplate(依赖部分):
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
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'
**DEPS**}
经过一些实验后,我发现它取决于实现顺序,所以我移动了** 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'
}
希望这有助于某人。