Как преобразовать StateNotifierProvider приложения Riverpod Todos для использования StreamProvider с данными из Firestore?

Я изучал это приложение Todos, предоставленное Реми, в качестве примера использования Riverpod.

Мой вопрос: как я могу преобразовать StateNotifierProvider кода для использования StreamProvider вместо фиктивного Json?

Если вы посмотрите файл main.dart, вы найдете этот код.

      final todoListProvider = StateNotifierProvider((ref) {
  return TodoList([
    Todo(id: 'todo-0', description: 'hi'),
    Todo(id: 'todo-1', description: 'hello'),
    Todo(id: 'todo-2', description: 'bonjour'),
  ]);
});

Итак, вместо этих фиктивных данных я хотел бы получить их из Firestore. Я пытался сделать это внутри StateNotifier. Но это не сработало, поэтому я думаю, что StateNotifierProvider был бы лучшим местом для этого.

      class CartRiverpod extends StateNotifier<List<CartItemModel>> {

    CartRiverpod([List<CartItemModel> products]) : super(products ?? []);
        final productStream = FutureProvider<List<ProductModel>>((ref) async {
        final ListofProducts = await ref.watch(productListStreamProvider);
 });
        final productStream = ref.watch(productListStreamProvider);

            void add(ProductModel addProduct) {
            bool productExists = false;
            state = [

                        ...state, new CartItemModel(product: addProduct),
      ];
    }

Можно ли сделать это внутри StateNotifier? Если нет, как я могу изменить свой код, чтобы сделать это внутри StateNotifierProvider?

0 ответов

Другие вопросы по тегам