如何使用 android 库中的 firebaseUI 优雅地构建统一项目
How to build unity project with firebaseUI from android library elegantly
我正在尝试使用 firebase google 和 facebook 登录创建游戏。我知道可以统一使用 firebase,但我不想单独创建两种登录方法,当存在类似 FirebaseUI 的东西时。
所以我创建了 android 带有 FirebaseUI 身份验证的插件。我在新的 android 项目中对其进行了测试,一切正常。但是当我统一使用我的插件时,我必须添加我自己的 gradle (mainTemplate.gradle
) 和 firebaseUI 的依赖项。
问题是 firebase auth 库中有一个默认值,当构建游戏时,我的库中的值(default_web_client_id
等)被默认值覆盖。
几乎一周后我找到了解决方案,但我希望有另一种方法。
我的解决方案:使用 firebase 构建 android 库,将库 (.aar
) 复制到 Assets/Plugins,将带有此库的 unity 项目导出到 Idea,然后复制整个文件 values.xml
(从 google-services.json
创建)和 facebook appId 到导出项目中的 res 文件夹。 (然后从 Idea 构建)
它正在工作,但通过这种方法,我在项目中有 3 次(1 次来自我的库,1 次来自 FirebaseUI 依赖项,1 次来自复制的 values.xml
,覆盖它们)。这不是问题,但我认为没有必要。
是否有更优雅的方式来使用 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'
}
希望这对某人有所帮助。
我正在尝试使用 firebase google 和 facebook 登录创建游戏。我知道可以统一使用 firebase,但我不想单独创建两种登录方法,当存在类似 FirebaseUI 的东西时。
所以我创建了 android 带有 FirebaseUI 身份验证的插件。我在新的 android 项目中对其进行了测试,一切正常。但是当我统一使用我的插件时,我必须添加我自己的 gradle (mainTemplate.gradle
) 和 firebaseUI 的依赖项。
问题是 firebase auth 库中有一个默认值,当构建游戏时,我的库中的值(default_web_client_id
等)被默认值覆盖。
几乎一周后我找到了解决方案,但我希望有另一种方法。
我的解决方案:使用 firebase 构建 android 库,将库 (.aar
) 复制到 Assets/Plugins,将带有此库的 unity 项目导出到 Idea,然后复制整个文件 values.xml
(从 google-services.json
创建)和 facebook appId 到导出项目中的 res 文件夹。 (然后从 Idea 构建)
它正在工作,但通过这种方法,我在项目中有 3 次(1 次来自我的库,1 次来自 FirebaseUI 依赖项,1 次来自复制的 values.xml
,覆盖它们)。这不是问题,但我认为没有必要。
是否有更优雅的方式来使用 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'
}
希望这对某人有所帮助。