Приложение вылетает после вызова Firebase Firestore object.collection | не может добавить коллекцию Firebase FireStore - PullRequest
0 голосов
/ 04 июля 2018

Мой код создает нового пользователя в моей базе данных firebase, это означает, что метод createUserWithEmailAndPassword работает, но после сбоя этого приложения.

Ссылка: Сначала мой код работал, но после внесения некоторых изменений в мою учетную запись службы проекта приложения firebase код не работает.

 mAuth.createUserWithEmailAndPassword(shopEmail,shopPassword)
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                ShopObject newShop = new ShopObject(shopName,shopKeeper,shopLocation,shopEmail,shopPhone,placeAddress,placeLat,placeLon);
                db.collection("shops")
                        .add(newShop)
                        .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                            @Override
                            public void onSuccess(DocumentReference documentReference) {
                                Toast.makeText(getApplicationContext(),documentReference.getId(),Toast.LENGTH_LONG).show();
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Toast.makeText(getApplicationContext(),"Registration Object Fail",Toast.LENGTH_LONG).show();
                            }
                        });
                Toast.makeText(getApplicationContext(),"Registration Sucess",Toast.LENGTH_LONG).show();
            }
            else
                Toast.makeText(getApplicationContext(),"Registration Fail",Toast.LENGTH_LONG).show();
        }
    });
}

Мой файл Gradle

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    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.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-auth:16.0.2'
    implementation 'com.google.firebase:firebase-firestore:17.0.2'
    implementation 'com.google.firebase:firebase-messaging:17.1.0'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    implementation 'com.google.android.gms:play-services-location:15.0.1'
    implementation 'com.google.android.gms:play-services-places:15.0.1'
}
apply plugin: 'com.google.gms.google-services'

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Я думаю, вы добавляете объект "ShopObject newShop" в базу данных.

ShopObject newShop = new ShopObject(shopName,shopKeeper,shopLocation,shopEmail,shopPhone,placeAddress,placeLat,placeLon);
                db.collection("shops")
                        .add(newShop)

Это не поддерживаемый тип данных firebase. Вы должны поместить его в любой из поддерживаемых типов данных , например, HashMap, а затем добавить.

0 голосов
/ 05 июля 2018

Ваш код, кажется, в порядке. Хотя вы не передаете сообщение об ошибке logcat, попробуйте следующие предложения для решения проблемы.

  1. Убедитесь, что правила пожарной базы установлены правильно в соответствии с вашим проектом.

  2. Убедитесь, что в вашем коде нет исключений nullPointer, таких как попытка получить ссылку на FirebaseAuth без инициализации экземпляра FirebaseDatabase.

  3. поскольку вы используете облачное хранилище, убедитесь, что в вашей консоли Firebase вы выбрали облачное хранилище в качестве базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...