{"id":18239906,"url":"https://github.com/luismisanve/firebasemessagingnotification","last_synced_at":"2025-04-08T16:20:53.999Z","repository":{"id":260420726,"uuid":"881246664","full_name":"LuisMiSanVe/FirebaseMessagingNotification","owner":"LuisMiSanVe","description":"Server and client sides of an notification service using Firebase","archived":false,"fork":false,"pushed_at":"2025-03-06T08:39:30.000Z","size":1986,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T09:38:28.556Z","etag":null,"topics":["android","csharp","firebase","google","java","messaging","notifications","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LuisMiSanVe.png","metadata":{"files":{"readme":"README.es.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-31T07:26:53.000Z","updated_at":"2025-03-06T08:39:34.000Z","dependencies_parsed_at":"2025-02-14T12:46:02.206Z","dependency_job_id":"3b8e590c-d186-4126-a234-b3dc1a11f2a8","html_url":"https://github.com/LuisMiSanVe/FirebaseMessagingNotification","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"66e46b87528ef4aa9269776b77c4a89bf93f2148"},"previous_names":["luismisanve/firebasemessagingnotification"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisMiSanVe%2FFirebaseMessagingNotification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisMiSanVe%2FFirebaseMessagingNotification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisMiSanVe%2FFirebaseMessagingNotification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisMiSanVe%2FFirebaseMessagingNotification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuisMiSanVe","download_url":"https://codeload.github.com/LuisMiSanVe/FirebaseMessagingNotification/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247877963,"owners_count":21011158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","csharp","firebase","google","java","messaging","notifications","rest-api"],"created_at":"2024-11-05T04:04:14.761Z","updated_at":"2025-04-08T16:20:53.983Z","avatar_url":"https://github.com/LuisMiSanVe.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [Ver en inglés/See in english](https://github.com/LuisMiSanVe/FirebaseMessagingNotification/tree/main)\n# 📲 Servicio de Notificaciones con Firebase Messaging\n[![image](https://img.shields.io/badge/C%23-239120?style=for-the-badge\u0026logo=csharp\u0026logoColor=white)](https://dotnet.microsoft.com/en-us/languages/csharp)\n[![image](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white)](https://www.java.com/)\n[![image](https://img.shields.io/badge/.NET-512BD4?style=for-the-badge\u0026logo=dotnet\u0026logoColor=white)](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet)\n[![image](https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge\u0026logo=Swagger\u0026logoColor=white)](https://github.com/domaindrivendev/Swashbuckle.AspNetCore)\n[![image](https://img.shields.io/badge/firebase-ffca28?style=for-the-badge\u0026logo=firebase\u0026logoColor=black)](https://console.firebase.google.com/)\n[![image](https://img.shields.io/badge/Visual_Studio-5C2D91?style=for-the-badge\u0026logo=visual%20studio\u0026logoColor=white)](https://visualstudio.microsoft.com/)\n[![image](https://img.shields.io/badge/Android_Studio-3DDC84?style=for-the-badge\u0026logo=android-studio\u0026logoColor=white)](https://developer.android.com/studio)\n\nAplicaciones de Servidor y Cliente con toda la configuración necesaria para un servicio de notificaciones impulsado por Firebase Messaging.\n\n## 🛠️ Instalación\nCon las apps ya configuradas, solo necesitas añadirles el servicio de Firebase Messaging. Por lo tanto, necesitarás un proyecto de Firebase.\nPara crearlo, inicia sesión en Google (si no lo habías hecho ya), entra en la [Consola de Firebase](https://console.firebase.google.com/) y crea un nuevo proyecto (recomendado) o usa uno que ya tengas.  \nDentro de tu proyecto, ve a Configuración (⚙️) y agrega la app de Android. Ponle el mismo nombre de paquete que tiene la app (si usas la de este repositorio, es `com.luismisanve.firebasemessagingnotification`).  \nSigue los pasos e ignora los que piden añadir líneas de código, ya que todo eso ya está configurado.\nLuego, descarga `google-services.json` y ponlo dentro de la carpeta [apps](https://github.com/LuisMiSanVe/FirebaseMessagingNotification/tree/main/FirebaseMessagingNotification/app) de tu proyecto de Android.  \nCon eso, la app del Cliente ya está vinculada.\n\nAhora, para hacer lo mismo con el Servidor, en la misma pantalla de Configuración de Firebase, cambia a la pestaña de \"Cuentas de servicio\" y haz clic en \"Generar nueva clave privada\". Esto descargará un archivo .json que, por defecto, la REST API del Servidor busca con el nombre `credentials.json`, por lo que debes cambiar el nombre del archivo o el código de la REST API para que coincidan.  \nPara finalizar, coloca el .json en la ruta principal del proyecto del Servidor, justo donde está [Program.cs](https://github.com/LuisMiSanVe/FirebaseMessagingNotification/tree/main/FirebaseMessagingNotificationServer).\n\n## 🚀 Cómo usar el proyecto\nAhora que todo está configurado, solo queda probar que funciona el servicio. Esto se puede hacer de dos formas:\n\n- **Desde Firebase:**\n\u003e [!NOTE]\n\u003e Esto es solo para pruebas; para una implementación real, se recomienda hacerlo desde la REST API del Servidor.\n\n  En Firebase, abre el desplegable \"Ejecución\" y busca \"Messaging\" (Si no lo encuentras, ve a \"Todos los productos\") y **Crea la primera campaña**.  \n  En los primeros pasos, cuando añadas el título y el texto de la notificación, se activará el botón \"Enviar mensaje de prueba\". Si le haces clic, te pedirá que ingreses un token.  \n  Para conseguirlo, abre la app del Cliente; al iniciarse, copiará automáticamente al portapapeles el token del dispositivo generado. Pégalo en Firebase y haz clic en \"Probar\".  \n  Si la aplicación está en **segundo plano o cerrada** y tiene **permisos de notificaciones**, debería recibir la notificación.\n\n- **Desde la REST API del Servidor:**\n  Abre ambas aplicaciones, rellena los parámetros del endpoint de la REST API, pega el token que la app del Cliente guarda en el portapapeles y haz clic en \"Execute\" para enviar la notificación.  \n  Mientras se cumplan los requisitos mencionados anteriormente, la notificación debería aparecer.  \n  \u003e En la documentación de Firebase, se recomienda usar métodos para guardar el token del dispositivo en el servidor para automatizar el proceso, en lugar de copiarlo y pegarlo manualmente. Para esto, reemplaza en el Cliente el código que guarda el token en el portapapeles con métodos que lo guarden en el servidor.\n\n## 💻 Tecnologías usadas\n- Lenguajes de programación: [C#](https://dotnet.microsoft.com/es-es/languages/csharp), [Java](https://www.java.com/)\n- Framework/Plantilla: [ASP.NET Core](https://dotnet.microsoft.com/es-es/apps/aspnet) (Creado con [.Net](https://dotnet.microsoft.com/es-es/learn/dotnet/what-is-dotnet) 8.0), Empty Views Activity\n- NuGets/Librerías:\n  - [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) NuGet (6.4.0)\n  - [FirebaseAdmin SDK](https://www.nuget.org/packages/FirebaseAdmin) NuGet (3.0.1)\n  - [com.google.gms:google-services](https://developers.google.com/android/guides/google-services-plugin) (4.4.2)\n  - [libs.firebase.bom](https://firebase.google.com/docs/android/learn-more)\n  - [libs.firebase.messaging](https://firebase.google.com/docs/cloud-messaging)\n- Otros:\n  - Firebase Messaging\n- IDE Recomendado: [Visual Studio](https://visualstudio.microsoft.com/) 2022, [Android Studio](https://developer.android.com/studio) (Koala Feature Drop 2024.1.2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluismisanve%2Ffirebasemessagingnotification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluismisanve%2Ffirebasemessagingnotification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluismisanve%2Ffirebasemessagingnotification/lists"}