Flutter:使用riverhooks在firestore中创建文档的问题

问题描述

每当我想在 firestore 中制作文档时,它都不会让我这样做,我认为这是我用 riverpod 和 hooks 做的事情 这是代码

onpressed: () async {
                                    currentOrganization.when(
                                        data: (organization) async {
                                          _post.value = _post.value
                                              .copyWith(creator: organization);
                                          print(_post.value);

                                          String imageid = uuid.v4();
                                          pickedImage = await ImagePicker()
                                              .getimage(
                                                  source: ImageSource.gallery,maxWidth: 1920,maxHeight: 1200,imageQuality: 80);
                                          Reference reference = FirebaseStorage
                                              .instance
                                              .ref()
                                              .child("$imageid");
                                          UploadTask uploadTask = reference
                                              .putFile(File(pickedImage.path));
                                          await uploadTask.then((res) async {
                                            imageUrl = await reference
                                                .getDownloadURL();
                                          });
                                          _post.value = _post.value
                                              .copyWith(picture: imageUrl);
                                        },loading: () =>
                                            const CircularProgressIndicator(),error: (error,stack) => Center(
                                              child: Text("$error"),));
                                  },),GestureDetector(
                                onTap: () async {
                                  context
                                      .read(createPostUSeCaseProvider)
                                      .execute(CreatePostUseCaseInput(
                                          uuid.v4(),_post.value.description,_post.value.title,_post.value.creator,_post.value.likes,_post.value.picture))
                                      .then(
                                        (result) => result.fold(
                                          (failure) {
                                            print('FAILURE: $failure');
                                            toast("Please try again");
                                          },(unit) {
                                            toast(" successfully");
                                          },);
                                },

当我删除 currentOrganizationProvider 时,一切都像魅力一样

这里是
用例

import 'package:dartz/dartz.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:takaful/application/core/use_cases/i.use_case.dart';
import 'package:takaful/application/post/use_case/create_post/create_post.input.dart';
import 'package:takaful/application/providers/post.repository.provider.dart';
import 'package:takaful/domain/core/i.failure.dart';
import 'package:takaful/domain/model/post.dart';
import 'package:takaful/domain/post/i.post.repository.dart';

final createPostUSeCaseProvider = Provider((ref) =>
    CreatePostUseCase(postRepository: ref.watch(postRepositoryProvider)));

class CreatePostUseCase implements IUseCase<CreatePostUseCaseInput,Unit> {
  final IPostRepository _postRepository;

  CreatePostUseCase({IPostRepository postRepository})
      : _postRepository = postRepository;

  @override
  Future<Either<IFailure,Unit>> execute(input) async {
    return await _postRepository.createPost(
        description: input.discreption,model: input.model,id: input.id,title: input.title,likes: input.likes,picture: input.picture);
  }
}

基础设施代码

Future<Either<UserFailures,Unit>> createPost({String id,String title,String description,OrganizationModel model,int likes,String picture}) async{
       try {
      await _firestore.collection(collection).doc().set({
        "id":id,"title":title,"description":description,"creator":model,"likes":likes,"picture":picture
      });
      return right(unit);
    } catch (error) {
      return left(UserFailures.serverError());
    }
  }

当我删除提供者时,一切正常,任何想法,我都需要模型!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)