Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:使用riverhooks在firestore中创建文档时出现问题_Flutter_Hook_Flutter Provider_Riverpod - Fatal编程技术网

Flutter 颤振:使用riverhooks在firestore中创建文档时出现问题

Flutter 颤振:使用riverhooks在firestore中创建文档时出现问题,flutter,hook,flutter-provider,riverpod,Flutter,Hook,Flutter Provider,Riverpod,每当我想在firestore中制作文档时,它都不会让我这么做,我想这是我用riverpod和挂钩做的事情 代码如下: onPressed: () async { currentOrganization.when( data: (organization) async {

每当我想在firestore中制作文档时,它都不会让我这么做,我想这是我用riverpod和挂钩做的事情 代码如下:

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'包:dartz/dartz.dart';
进口“包装:hooks_riverpod/hooks_riverpod.dart”;
导入“包:takaful/application/core/use_cases/i.use_case.dart”;
导入“包:takaful/application/post/use_case/create_post/create_post.input.dart”;
导入“包:takaful/application/providers/post.repository.provider.dart”;
导入“package:takaful/domain/core/i.failure.dart”;
导入“包:takaful/domain/model/post.dart”;
导入“package:takaful/domain/post/i.post.repository.dart”;
最终CreatePositeSecaseProvider=提供者((ref)=>
CreatePostoseCase(postRepository:ref.watch(postRepositoryProvider));
类CreateSpostSecase实现IUseCase{
最终IPostRepository\u postRepository;
CreateSpostSecase({IPostRepository postRepository})
:_postRepository=postRepository;
@凌驾
未来执行(输入)异步{
return wait_postRepository.createPost(
描述:input.discreption,
模型:input.model,
id:input.id,
title:input.title,
喜欢:input.likes,
图片:输入。图片);
}
}
基础架构代码

Future createPost({String id,String title,String description,OrganizationModel model,int likes,String picture})异步{
试一试{
wait_firestore.collection(collection).doc().set({
“id”:id,
“头衔”:头衔,
“描述”:描述,
“创造者”:模型,
“喜欢”:喜欢,
“图片”:图片
});
返回权(单位);
}捕获(错误){
返回left(UserFailures.serverError());
}
}

当我删除供应商的一切工作,任何想法,我需要的模型

您说您在删除currentOrganizationProvider时修复了它,您能展示一下该提供程序的功能吗?还有,你的手势检测器的onPressed或onTap有问题吗?很抱歉,我忘了删除这个问题,我已经成功地解决了
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());
    }
  }