Search code examples
androidfirebasefirebase-realtime-databasefirebase-notifications

How to send a notification on Android extracting data from the Firebase Database?


I know Firebase contains a section to send notifications, writing your message in console, but I want to get the values from a table to display the values in a notification. Is this possible?


Solution

  • This is how i did:

    //Firebase Context Firebase.setAndroidContext(this); //URL database firebase Firebase ref = new Firebase(Config.FIREBASE_URL);

        ref.addValueEventListener(new ValueEventListener() {
            //DataSnapshot para leer datos de un bd
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                //Get Actual Value(getchildren)
                for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                    //Getting the data from snapshot
                    Person person = postSnapshot.getValue(Person.class);
    
                    //Intent(Get components GUI)
                    Intent intent = new Intent();
    
                    //Allow External Application(PendingIntent)
                    PendingIntent pInent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
                    //Notificacion
    
    
                    Notification noti = new Notification.Builder(MainActivity.this)
                            //Propiedades
                            .setContentTitle("Notificacion")
                            .setSound(Uri.EMPTY)
    
                            .setContentText("Nombre: "+person.getName()+"\t\tDireccion: "+person.getAddress())
                            .setSmallIcon(R.mipmap.bus)
                            .setContentIntent(pInent).getNotification();
    
    
                    //Cancel notification
                    noti.flags = Notification.FLAG_AUTO_CANCEL;
    
                    //Get Notification
                   NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                    nm.notify(1, noti);
    
    
    
                }
            }
    
            @Override
            public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
            }
        });