F.Base veri eklendiğinde belirli cihazlara bildirim gönderme

Bir uygulamam var fakat kullanıcılar için üye olma sistemim yok benim istediğim eğer kullanıcı uygulama üzerinden anlık bildirimleri kabul ederse firebase realtime database her ver eklendiğinde bildirim gitmesi. Aslında bunu arka planda çalışan bir Service ile başardım fakat bir süre istediğim gibi çalışsa da uygulama kapanıp 20-25 dk gibi bir süre geçince sanırım isletim sistemi otomatik kapatıyor background servisimi .Firebase Messaging servis ile ilgili araştırmalar yaptım fakat bir türlü aradığımı bulamıyorum dediğim gibi mesela veri tabanına bir veri eklendi kullanıcılara Bir veri eklendi diye mesaj gidecek istediğim olay bu çok uzun süredir araştırıyorum son çare buraya yazıyorum sizce ne yapmalıyım servis yerine retrofit,web service yapısının üzerine mi gitmeliyim nasıl halledebilirim bu sorunu ? Şimdiden yardımcı olacak herkese çok teşekkürler.

Image icon gelecegi.png

    +1

    Recep Özen

    10 Ekim 2019

    Ne demek bende çok hakim değilim sizin gibi ihtiyacım olmuştu tam bir hafta araştırma sonucu bulabilmiştim. Yine yardıma ihtiyacınız olursa yardım etmekten memnun olurum.

    +1

    Recep Özen

    10 Ekim 2019

    Burada kullanmanız greken Fibase Function eğer javascript bilginiz var ise bu konu sizin için çok zor olmayacaktır. Genel olarak anlatırsam Firebase in function özelliğini kullanarak veri tabanınıza anlık veri kayıtlarını yakalaya biliyorsunuz. Daha sonrda Firebase Cloudmessaging kullanarak mesaj atabiliyorsunuz. Ben bir uygulamamda bunu kullanmıştım. Gayet verimli çalışıyor. Öğretici olması açısından https://www.youtube.com/watch?v=7IkUgCLr5oA&list=PLl-K7zZEsYLkPZHe41m4jfAxUi0JjLgSM&index=1 bu video listesini incelemenizi öneririm. Firebase fumctionu öğrenmenizde yardımvı olcaktır.

    Ayrıca aşağıda paylaştığım bir typescript kodu tam da bu işi yapıyor. Ancak ufak bir nokta var kullanıcılarınızı firebase cloudmessaging te bir konu ya üye etmeniz gerek bunu unutmayın.


    import * as functions from 'firebase-functions'
    import * as admin from 'firebase-admin'
    admin.initializeApp()

    export const sendPush =
        functions.firestore.document('PublicChat/{mesaj}').onCreate(async (change, context) => {
            //const mesaj = context.params.mesaj
            const sender = change.data();
            const payload = {
                data: {
                    title: String(sender.pushUserNme) + ' bir mesaj gönderdi.',
                    body: String(sender.text)
                }
            }
            //console.log(payload)
            return admin.messaging().sendToTopic("PublicChat", payload)
                .catch(function (error) {
                    console.log('Error subscribing to topic:', error);
                });
        })
     

    0

    Recep Özen

    11 Ekim 2019

    Merhaba attığınız mesajı geç gördüm müsait iseniz yardımcı olmak isterim

    0

    Yasin Ege

    11 Ekim 2019

    Attığınız link yardımıyla Cloud Functions kurulumunu yapıyorum fakat sizinde başınıza geldi mi bilmiyorum firebase de projemin adı SamsunRadarProject diye geçiyor verilen talimatlara göre;

    mkdir samsunradarproject

    cd samsunradarproject 

    firebaselogin 

    ve en son firebase initfunction dedigimde masaüstündeki hali hazır daki android projemin olduğu klasöre yazmak istiyor verileri seçeneklerden yeni bir klasör oluştur dersem de firebase de farklı bir proje olusturuyor bu başına geldimi ne yapmam gerek ? zaten yayınlanmış bir uygulamayı bozmak istemiyorum açıkcası yardımcı olursan sevinirim :)

      recepözen

      Cum, 11/10/2019 - 11:15
      Tabi yardımcı olmak isterim burası benim discord adresim buradan daha kolay anlatırım diye düşünüyorum https://discord.gg/JQBH9f

    0

    Yasin Ege

    10 Ekim 2019

    Java script bilmiyorum ama çok teşekkür ederim üzerimden büyük bir yük aldınız şuan derse gidiyorum dediğiniz şeyleri araştırdım tam aradığım konu olduğunu gördüm akşam sorunumu çözmeye çalışacağım , cevabınız için çok teşekkürler

    Bu soruya cevap vermek için üye olmanız veya giriş yapmanız gerekmektedir.