Push-уведомления при обновлении элемента - PullRequest
0 голосов
/ 23 июня 2019

Когда элемент был обновлен, я хочу, чтобы пользователь получил уведомление. Я перепробовал все виды вещей, но чувствую, что почти у меня есть, но я не получаю никаких уведомлений.

Я сделал функцию для обновления в облачных функциях, которая, кажется, работает (что-то хорошее происходит при обновлении элемента, как я вижу в журнале). Я пытался подписаться на ID товара и предметы, но не отличается ..

  Future<List<TaskList>> getItems() async{
    List <Item> Items = [];
    var snap = await Firestore.instance
        .collection('Items')
        .getDocuments();
    for (var doc in snap.documents) {
      Item item = new Item.fromDocument(doc);
      Items.add(item);
      FirebaseMessaging().subscribeToTopic(item.postID);
    }
    return tasklists;
  }
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();

const db = admin.firestore();
const fcm = admin.messaging();

exports.sendToTopic = functions.firestore
  .document('items/{itemID}')
  .onUpdate((change, context) => {
    const item = change.after.data();

    const payload = {
      notification: {
        title: item.name,
        body: `${item.name} has been updated!`
      }
    };

    return fcm.sendToTopic('items', payload);
  });

У меня также есть инициализация для уведомления о трепетании с помощью сообщений Firebase. Я не получаю ошибок, просто ничего не происходит, когда я обновляю элемент ...

1 Ответ

0 голосов
/ 23 июня 2019

Первым шагом в отладке всегда является попытка изолировать проблему.Прямо сейчас вы не знаете, есть ли проблема в вашем приложении Flutter или в коде Cloud Functions.

Если вы отправляете сообщение на ту же тему из консоли Firebase , оно приходит?Если это так, вы знаете, что проблема в вашем коде на стороне сервера, и вы можете удалить код Flutter из уравнения.Если сообщение не приходит, сначала сконцентрируйтесь на том, чтобы заставить его работать, и только затем переходите к коду облачных функций.

Выделив проблему таким образом, вы уменьшите объем того, что вам нужноучитывать.Это также лучший способ убедиться, что мы можем помочь здесь в переполнении стека, потому что нам нужно учитывать меньше потенциальных проблем.Более подробно об этом я настоятельно рекомендую прочитать , как создать минимальный, полный, проверяемый пример , в котором описано что-то похожее на вышеприведенное, и многое другое о том, как лучше всего получить помощь здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...