rrousselGit / riverpod

A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
https://riverpod.dev
MIT License
6.17k stars 943 forks source link

Error when using context.read inside a function #371

Closed ablbol closed 3 years ago

ablbol commented 3 years ago

I am using null safety with Riverpod and hooks.
I have the following provider:

final firestoreServiceProvider =
    Provider.autoDispose<FirebaseFirestoreService?>(
  (ref) {
    final asyncUser = ref.watch(userProvider);
    if (asyncUser.data?.value?.uid != null) {
      final db = FirebaseFirestoreService(uid: asyncUser.data!.value!.uid);
      ref.onDispose(db.dispose);
      return db;
    }
    return null;
  },
  name: 'firestoreServiceProvider',
);

I am reading this provider inside a function like this:

context.read(firestoreServiceProvider);

But I am getting the following error.

The argument type 'AutoDisposeProvider<FirebaseFirestoreService?>' can't be assigned to the parameter type 'ProviderBase<Object, dynamic>' because 'FirebaseFirestoreService?' is nullable and 'Object' isn't.

Here is how my pubspec.yaml looks like:

version: 1.0.0+1

environment:
  sdk: '>2.12.0 <3.0.0'

dependencies:
  flutter:
    sdk: flutter
  image_picker: ^0.7.2
  cached_network_image: ^3.0.0-nullsafety
  cloud_firestore: ^1.0.0
  cloud_functions: ^1.0.0
  cupertino_icons: ^1.0.2
  # firebase_analytics: ^7.1.0
  firebase_auth: ^1.0.0
  firebase_core: ^1.0.0
  firebase_storage: ^8.0.0
  flutter_login_facebook: ^1.0.0-nullsafety.1
  flutter_markdown: ^0.6.0
  flutter_svg: 0.21.0-nullsafety.0
  font_awesome_flutter: ^9.0.0-nullsafety
  geolocator: ^7.0.1
  google_sign_in: ^5.0.0
  image_cropper: ^1.4.0
  intl: ^0.17.0
  material_design_icons_flutter: ^5.0.5955-rc.1
  permission_handler: ^6.0.1
  tuple: ^2.0.0-nullsafety.0
  uuid: ^3.0.1
  flutter_hooks: ^0.16.0
  hooks_riverpod: ^0.13.1
  hive: ^2.0.0
  hive_flutter: ^1.0.0-nullsafety.0
AlexHartford commented 3 years ago

This is likely the same issue as https://github.com/rrousselGit/river_pod/issues/372 and will be fixed by https://github.com/rrousselGit/river_pod/pull/373.

rrousselGit commented 3 years ago

Fixed by #377 / #373