query guardar example datos datasnapshot consultas java android firebase

java - guardar - FirebaseApp con nombre[DEFAULT] no existe



guardar datos en firebase android (12)

Después de migrar a Firebase Cloud Messaging. Al abrir mi aplicación se bloquea y arroja un error que dice java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn''t exist. Ya puse mi nuevo google-services.json y actualizo mi SDK.

Aquí está mi actividad principal

public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Check Google play service GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance(); int resultCode = googleAPI.isGooglePlayServicesAvailable(this); if (resultCode != ConnectionResult.SUCCESS) { if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); } else { Log.e(LOG_TAG, "This device is not supported."); finish(); } } Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken()); } }


Android Studio

  1. aplique el complemento: ''com.google.gms.google-services'' (build.gradle - Módulo de capa)
  2. Menú ~> Construir ~> Proyecto limpio

A mi me funciona bien.


Cambie la Acción de compilación (GoogleServicesJson) al Nombre de archivo Google-Services.Json.


En mi caso, no estaba inicializando Firebase en el inicio de la aplicación, tuve que hacer lo siguiente para resolverlo

@Service public class FirebaseSetup implements CommandLineRunner { public void run(String... args) throws Exception { initializeFirebase(); } private void initializeFirebase() throws FileNotFoundException, IOException { FileInputStream serviceAccount = new FileInputStream(ResourceUtils.getFile("classpath:ssf1-v1-firebase-adminsdk-zr72u-afcb5bc13b.json")); FirebaseOptions options = new FirebaseOptions.Builder().setCredentials(GoogleCredentials.fromStream(serviceAccount)).build(); FirebaseApp.initializeApp(options); } }


En su dependencia solo agregue:

dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) ... compile ''com.google.firebase:firebase-core:9.0.2'' compile ''com.google.firebase:firebase-messaging:9.0.2'' }

aplique el plugin: ''com.google.gms.google-services''


La respuesta de @jmodrako resolvió mi problema ... tools:node="replace" a tools:node="merge"

Explicado ... en AndroidManifest.xml

Desde

<application ... tools:node="replace">

A

<application ... tools:node="merge">

¿Combinar problemas con los temas de la biblioteca? Problemas de compilación resueltos usando tools:replace="android:theme"

Créditos a https://.com/a/38060272/2765087


Mueva su inicialización de Firebase dentro de la clase onCreate of Application. Además, si ha habilitado la persistencia sin conexión, FirebaseDatabase.getInstance (). SetPersistenceEnabled (true) debería aparecer antes que cualquier otra inicialización.


No estoy seguro, si es relevante aquí. Pero hay otro escenario en el que puede ocurrir este bloqueo.

Si su aplicación tiene un servicio (con un proceso diferente) y está creando su propia clase de Application , el servicio y la aplicación en primer plano utilizarán la misma clase de Aplicación ( no la misma instancia ) para inicializar. Ahora, cuando estoy usando com.google.firebase:firebase-crash para manejar bloqueos, crea un servicio en segundo plano your.app.packagename:background_crash . Por alguna razón, esto estaba provocando bloqueos en mi aplicación. Específicamente, porque en mi clase de Aplicación, estaba haciendo una llamada como,

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Supongo que el servicio en segundo plano al iniciar con nuestra clase de aplicación, de alguna manera Firebase no se inicializa. Para arreglar esto, hice

if (!FirebaseApp.getApps(this).isEmpty()) FirebaseDatabase.getInstance().setPersistenceEnabled(true);


Por favor, verifique dos veces, agregó

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

en la parte inferior del archivo gradle de la aplicación y luego limpiar y reconstruir el proyecto


Registre su aplicación en Firebase y copie google-services.json en su proyecto raíz.

Aplique classpath ''com.google.gms:google-services:3.1.0 a su raíz build.gradle.

Aplicar apply plugin: ''com.google.gms.google-services a su proyecto gradle.


Tuve un problema similar, y para mí fue un error / problema con la fusión de manifiesto. Descubrí que FirebaseInitProvider no se ha inyectado en el archivo de manifiesto final debido a las tools:node="replace" en el archivo de manifiesto de mi aplicación. Por lo tanto, intente eliminar esta etiqueta xml y FirebaseInitProvider se inyectará y Firebase se puede inicializar correctamente.


Verifique todas las configuraciones de la siguiente manera:

Configuración del proyecto 1-firebase: google-services.json es correcto?

2- agrega firebase SDK

3- clean - reconstruye tu proyecto

con suerte, esto ayuda!


Archivo build.gradle:

buildscript { repositories { jcenter() mavenLocal() } dependencies { classpath ''com.android.tools.build:gradle:2.1.2'' classpath ''com.google.gms:google-services:3.0.0'' } } allprojects { repositories { jcenter() mavenLocal() } }

Archivo / app / build.gradle:

apply plugin: ''com.android.application'' android { .. } dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) .. compile ''com.google.firebase:firebase-core:9.0.2'' compile ''com.google.firebase:firebase-messaging:9.0.2'' } apply plugin: ''com.google.gms.google-services''