代码之家  ›  专栏  ›  技术社区  ›  Chris Edgington

Firestore Android保存失败-无法访问Firestore后端

  •  1
  • Chris Edgington  · 技术社区  · 6 年前

    有人看到在Android上用Firestore保存文档有问题吗?好像发生在 'com.google.firebase:firebase-firestore:17.0.x'

    尝试这样做一个简单的保存:

    val db = FirebaseFirestore.getInstance()
    
    db.collection("users").document("user1").set(user)
        .addOnSuccessListener {
            Log.d(TAG, "Save OK")
        }
        .addOnFailureListener {
            Log.e(TAG, "Save Failed")
        }
    

    但这两个倾听者都没有被召唤。我在日志中看到的唯一错误是:

    Firestore后端。

    com.google.firebase:firebase-firestore:16.0.0 似乎解决了问题。

    弱点生成.gradle-

    apply plugin: 'com.android.application'
    
    apply plugin: 'kotlin-android'
    
    apply plugin: 'kotlin-android-extensions'
    
    apply plugin: 'kotlin-kapt'
    
    def dbflow_version = "4.2.4"
    
    android {
        compileSdkVersion 28
        buildToolsVersion '28'
        defaultConfig {
            applicationId "ce.test"
            minSdkVersion 23
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        sourceSets {
            main {
                java.srcDirs = ['src/main/java', 'src/main/java/ce.test/models']
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
        implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
        implementation 'com.android.support:preference-v7:28.0.0-alpha3'
        implementation 'com.android.support.constraint:constraint-layout:1.1.1'
        implementation 'com.google.firebase:firebase-firestore:17.0.1'
        implementation 'com.google.firebase:firebase-auth:16.0.2'
        implementation 'com.madgag.spongycastle:core:1.56.0.0'
        implementation 'com.madgag.spongycastle:prov:1.56.0.0'
        implementation 'com.madgag.spongycastle:bcpkix-jdk15on:1.56.0.0'
        implementation 'com.android.support:design:28.0.0-alpha3'
        implementation 'org.jetbrains.anko:anko-common:0.9'
        implementation 'br.com.simplepass:loading-button-android:1.14.0'
        implementation 'com.google.android.gms:play-services-auth:15.0.1'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
        implementation 'com.android.support:recyclerview-v7:28.0.0-alpha3'
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Alex Mamo    6 年前

    如果设备无法访问Firestore后端,则不会调用成功侦听器和失败侦听器。成功/失败侦听器仅在数据提交给Firebase服务器或被Firebase服务器拒绝后才会被调用。

    这不是强制性的,但我建议您使用Firestore的最新版本。为此,请更改以下代码行:

     implementation 'com.google.firebase:firebase-firestore:17.0.1'
    

    implementation 'com.google.firebase:firebase-firestore:17.0.4'
    

    相反,您应该在文件末尾添加以下代码行:

    apply plugin: 'com.google.gms.google-services'
    

    也请不要忘记生成.gradle(项目)文件,以下代码行:

    classpath 'com.android.tools.build:gradle:3.1.3'
    classpath 'com.google.gms:google-services:4.0.2'