【问题标题】:upload files to firebase storage not working将文件上传到 Firebase 存储不起作用
【发布时间】:2023-03-14 08:35:01
【问题描述】:

当我尝试使用颤振将图像上传到 Firebase 存储时,它不起作用。它不会给出错误,但不会加载到 android 设备。它只是显示正在运行的 gradle task 'assemble task' .. 它不会从那里开始

这是我用来上传图片的代码 noticeUpload.dart

import 'dart:io';
import 'dart:async';
import 'package:image_picker/image_picker.dart';
import 'package:flutter/material.dart';
import 'package:firebase_storage/firebase_storage.dart';

class NoticeUpload extends StatefulWidget {
    @override
_NoticeUploadState createState() => _NoticeUploadState();
 }

class _NoticeUploadState extends State<NoticeUpload> {
  File sampleImage;
  Future getImage()async{
var tempImage= await ImagePicker.pickImage(source: ImageSource.gallery );
setState(() {
  sampleImage=tempImage;
});

}


  @override
  Widget build(BuildContext context) {
return new Scaffold(
  appBar: AppBar(
    title: Text('Upload Notices'),


  ),
  body: Row(

    children:<Widget>[
      sampleImage==null? Text('select image'):enableUpload(),
      RaisedButton(
        onPressed: getImage,
        child: Text('uppload image'),
        ),
      RaisedButton(
        onPressed: (){

        },
        child:Text('uppload file') ,
      )
    ]
  ),

);
 }
Widget enableUpload(){
   return Container(
  child: Column(
    children: <Widget>[
      Image.file(sampleImage,height:200.0,width:100.0),
      RaisedButton(
        child:Text('Upload') ,
        onPressed: (){
          final StorageReference firebaseStorageRef=
          FirebaseStorage.instance.ref().child('myimage.jpg');
          final StorageUploadTask task=firebaseStorageRef.putFile(sampleImage);
        },
        )
    ],
    ),
);
}
}

这是 build.gradle 文件。

buildscript {
ext.kotlin_version = '1.3.50'
repositories {
    google()
    jcenter()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.5.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath 'com.google.gms:google-services:4.0.1'
}
}

allprojects {
repositories {
    google()
    jcenter()
}
}

rootProject.buildDir = '../build'
   subprojects {
      project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
     project.evaluationDependsOn(':app')
 }

task clean(type: Delete) {
     delete rootProject.buildDir
 }

subprojects{
     project.configurations.all{
          resolutionStrategy.eachDependency{ details ->
              if(details.requested.group=='com.android.support'
             && !details.requested.name.contains('multidex')
            ){
            details.useVersion "28.0.0"
            }

        }

     }
   }

【问题讨论】:

    标签: flutter build.gradle firebase-storage


    【解决方案1】:
    final ref = FirebaseStorage.instance
              .ref()
              .child('user_image')
              .child(_authResult.user.uid + '.jpg');
          await ref.putFile(file).onComplete;
          final url = await ref.getDownloadURL();
          print("Image URL: " + url);
    

    按照上面的代码检查您是否获得了 URL,如果您在项目中正确配置了 firebase,那么它应该可以工作;

    【讨论】:

    • 我也试过了,但抖动停留在“运行 gradle 任务 'assemble debug'”。应用程序屏幕只显示白色。
    猜你喜欢
    • 2017-09-17
    • 2019-01-27
    • 2018-03-17
    • 1970-01-01
    • 2021-03-29
    • 2019-09-06
    • 2021-10-06
    • 2019-11-06
    • 2020-04-08
    相关资源
    最近更新 更多