Esta será una traducción del POST original de EREL
https://www.b4x.com/android/forum/threads/integrating-firebase-services.67692/#content
E intentaré adicionar mas info que pueda hacer falta, de la cual espero que entre todos podamos aportar info y experiencias.
Primero
QUE ES FIREBASE ?
FireBase es un servicio pensado 100 % para Aplicaciones Móviles, fue adquirida recientemente por GOOGLE y nos brinda herramientas gratuitas (y otras que no) para un manejo superior de nuestras Apps en cuanto a Analytics - Análisis de Descargas y Compras (similar a Google Analytics), servicios de Base de Datos (para alojar datos de nuestras APPs) el cual es gratuito con limitaciones, Storage y mucho más (ver imágenes siguientes)
QUE VERSION DE B4A NECESITO PARA INTEGRAR FIREBASE ?
Solo es posible utilizar FIREBASE en B4A versión 6.0 o superior
COMO INTEGRAR FIREBASE ?
1. Abrir el ANDROID SDK MANAGER y actualizar a las últimas versiones de :
2. Regístrese en Firebase y cree un nuevo proyecto
ver https://firebase.google.com/docs/
(procure que el nombre de su proyecto coincida con el nombre de su APP)
3. Descargue el archivo google-services.json y colocarlo en la carpeta de su Aplicación (donde usted tiene el archivo fuente .b4a)
4. Pegue los fragmentos de código (que se incluyen a continuación) en su Manifiest Editor , dependiendo de los servicios que usted quiera activar.
5. Siga las instrucciones específicas de cada librería
Una versión reciente de Google Play Service debería ser instalada en el dispositivo movil.
La versión mínima que requieren la mayoría de las funciones es 2.3 (API 9)
Usted puede testear si Google Play Services está disponible con FirebaseAnalytics.IsGooglePlayServicesAvailable
FRAGMENTOS DE CODIGO PARA EL MANIFIEST EDITOR ?
Procure copiar los códigos con los comentarios y sin modificar nada.
Siempre requerido para usar Google Play Services o Firebase:
Siempre requerido para usar Firebase:
Notificationes / FCM (Firebase Cloud Messaging) / push messages
Analytics y crash reports:
Ads (AdMob)
Auth
Foro de Soporte en Ingles
https://www.b4x.com/android/forum/forums/android-questions.26/
https://www.b4x.com/android/forum/threads/integrating-firebase-services.67692/#content
E intentaré adicionar mas info que pueda hacer falta, de la cual espero que entre todos podamos aportar info y experiencias.
Primero
QUE ES FIREBASE ?
FireBase es un servicio pensado 100 % para Aplicaciones Móviles, fue adquirida recientemente por GOOGLE y nos brinda herramientas gratuitas (y otras que no) para un manejo superior de nuestras Apps en cuanto a Analytics - Análisis de Descargas y Compras (similar a Google Analytics), servicios de Base de Datos (para alojar datos de nuestras APPs) el cual es gratuito con limitaciones, Storage y mucho más (ver imágenes siguientes)
QUE VERSION DE B4A NECESITO PARA INTEGRAR FIREBASE ?
Solo es posible utilizar FIREBASE en B4A versión 6.0 o superior
COMO INTEGRAR FIREBASE ?
1. Abrir el ANDROID SDK MANAGER y actualizar a las últimas versiones de :
- Android Support Repository
- Google Repository
2. Regístrese en Firebase y cree un nuevo proyecto
ver https://firebase.google.com/docs/
(procure que el nombre de su proyecto coincida con el nombre de su APP)
3. Descargue el archivo google-services.json y colocarlo en la carpeta de su Aplicación (donde usted tiene el archivo fuente .b4a)
4. Pegue los fragmentos de código (que se incluyen a continuación) en su Manifiest Editor , dependiendo de los servicios que usted quiera activar.
5. Siga las instrucciones específicas de cada librería
Una versión reciente de Google Play Service debería ser instalada en el dispositivo movil.
La versión mínima que requieren la mayoría de las funciones es 2.3 (API 9)
Usted puede testear si Google Play Services está disponible con FirebaseAnalytics.IsGooglePlayServicesAvailable
FRAGMENTOS DE CODIGO PARA EL MANIFIEST EDITOR ?
Procure copiar los códigos con los comentarios y sin modificar nada.
Siempre requerido para usar Google Play Services o Firebase:
B4X:
'************ Google Play Services Base ************
AddApplicationText(
<activity android:name="com.google.android.gms.common.api.GoogleApiActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported="false"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
)
'************ Google Play Services Base (end) ************
Siempre requerido para usar Firebase:
B4X:
'************ Firebase Base ************
CreateResourceFromFile("google-services", "google-services.json")
AddPermission(android.permission.ACCESS_NETWORK_STATE)
AddPermission(android.permission.INTERNET)
AddPermission(android.permission.WAKE_LOCK)
AddPermission(com.google.android.c2dm.permission.RECEIVE)
AddPermission(${applicationId}.permission.C2D_MESSAGE)
AddManifestText( <permission android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />)
AddApplicationText(
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.measurement.UPLOAD"/>
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.measurement.AppMeasurementService"
android:enabled="true"
android:exported="false"/>
<provider
android:authorities="${applicationId}.firebaseinitprovider"
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:exported="false"
android:initOrder="100" />
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.measurement.UPLOAD"/>
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.measurement.AppMeasurementService"
android:enabled="true"
android:exported="false"/>
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"
android:exported="false" />
<service
android:name="com.google.firebase.iid.FirebaseInstanceIdService"
android:exported="true">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
)
'************ Firebase Base (end) ************
Notificationes / FCM (Firebase Cloud Messaging) / push messages
B4X:
'************ Firebase Notifications ************
AddApplicationText(
<service
android:name="com.google.firebase.messaging.FirebaseMessagingService"
android:exported="true">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="anywheresoftware.b4a.objects.FirebaseNotificationsService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
)
'************ Firebase Notifications (end)************
Analytics y crash reports:
B4X:
'************ Firebase Analytics ************
AddApplicationText(
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.measurement.UPLOAD"/>
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.measurement.AppMeasurementService"
android:enabled="true"
android:exported="false"/>
<service android:name="com.google.firebase.crash.internal.service.FirebaseCrashReceiverService"
android:process=":background_crash"/>
<service android:name="com.google.firebase.crash.internal.service.FirebaseCrashSenderService"
android:process=":background_crash"/>
)
'************ Firebase Analytics (end) ************
Ads (AdMob)
B4X:
'************ Firebase Ads ************
AddApplicationText(<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
<activity android:name="com.google.android.gms.ads.purchase.InAppPurchaseActivity"
android:theme="@style/Theme.IAPTheme"/>
)'************ Firebase Ads (end) ************
Auth
B4X:
'************ Firebase Auth ************
AddApplicationText(
<activity android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:excludeFromRecents="true"
android:exported="false" />
<service
android:name="com.google.android.gms.auth.api.signin.RevocationBoundService"
android:exported="true"
android:permission="com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION" />
)'************ Firebase Auth (end) ************
Foro de Soporte en Ingles
https://www.b4x.com/android/forum/forums/android-questions.26/
Last edited: