有什么方法可以上传图像而不将旧图像删除到Firebase存储中?

时间:2019-04-09 17:40:03

标签: android ios firebase flutter

我能够上传图像并给其name.jpg,然后将其传递给对象名称以上传到Firebase。问题在于,只有一张照片能够留在火场中。我希望能够存储多张图片。

我找不到改变它的方法。下面的代码是访问图库的功能,或者可以使它访问相机。我无法将图片发送到Firebase存储器,但只能存储一幅图像,而前一张图像将被删除。我不要我希望能够存储图片而不删除以前的图片。


class _MyHomePageState extends State<MyHomePage> {
  File sampleImage;

  Future getImage() async {
    var tempImage = await ImagePicker.pickImage(source: ImageSource.gallery);

    setState(() {
      sampleImage = tempImage;
    });
  }




RaisedButton( 
            elevation: 7.0,
            child: Text('Upload'),
            textColor: Colors.white,
            color: Colors.blue,
            onPressed: () {
              final StorageReference firebaseStorageRef =     FirebaseStorage.instance.ref().child('myimage.jpg');
              final StorageUploadTask task = firebaseStorageRef.putFile(sampleImage);

            },
          )
        ],
      ),
    );
  }
}

1 个答案:

答案 0 :(得分:0)

因此,有一些选择。首先,每次将具有相同名称的文件上传到Firebase存储中的同一目录时,它都会替换现有的文件。确实有两种选择:

  1. 以某种方式更改文件名。一种简单的方法是将当前日期时间附加到图像上,即 <div class="search"> <form role="search" action="<?php echo esc_url(home_url('/')); ?>" method="get"> <input type="text" name="s" class="<?php echo implode(' ', $classes); ?>" value="<?php the_search_query(); ?>" placeholder="<?php _e('Search...', 'bunyad'); ?>"/> <button class="search-button" type="submit"><i class="fa fa-search"></i></button> </form> </div> <!-- .search --> 。您可能需要在此处导入日历实用程序。
  2. 将图像添加到唯一目录。在Firebase存储上,您可以像在本地计算机上一样创建目录。为此,请在子方法参数中传递URI样式字符串,即"myimage_" + Calendar.getInstance().getTime() + ".jpg",将文件“ myimage.jpg”保存到路径“ images / uniqueidentifier”。

您可能希望将这些图像路径保存在诸如Firestore之类的位置,以方便以后与之交互。

https://firebase.google.com/docs/storage/android/upload-files进一步阅读。