Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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
Java 是否可以同时将多个文件上载到firebase存储_Java_Android_Firebase_Firebase Storage - Fatal编程技术网

Java 是否可以同时将多个文件上载到firebase存储

Java 是否可以同时将多个文件上载到firebase存储,java,android,firebase,firebase-storage,Java,Android,Firebase,Firebase Storage,******编辑****** 事实证明,您可以在一个实例中上载多个文件。我使用了下面的代码。所有文件都上载,但由于某些原因,在应用程序中,它在上载的项目回收视图中仅显示一个项目。有人能通过n pehaps快速检查一下吗?请解释一下原因 recycle_item.xml android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <LinearLayout

******编辑******

事实证明,您可以在一个实例中上载多个文件。我使用了下面的代码。所有文件都上载,但由于某些原因,在应用程序中,它在上载的项目回收视图中仅显示一个项目。有人能通过n pehaps快速检查一下吗?请解释一下原因

recycle_item.xml

 android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:orientation="horizontal"
    android:padding="10dp"
    android:weightSum="10">


    <ImageView
        android:id="@+id/upload_icon"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_weight="2"
        android:src="@drawable/ic_attach_file_black_24dp"/>

    <TextView
        android:id="@+id/upload_filename"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="6"

        android:gravity="center_vertical"
        android:text="Filename.type"
        android:textSize="16sp" />
最后是适配器类

public List<String> fileNameList;
    public List<String> fileDoneList;

public UploadListAdapter(List<String> fileNameList, List<String>fileDoneList){

        this.fileDoneList = fileDoneList;
        this.fileNameList = fileNameList;

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_item, parent, false);
        return new ViewHolder(v);

    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

        String fileName = fileNameList.get(position);
        holder.fileNameView.setText(fileName);

        String fileDone = fileDoneList.get(position);

        if(fileDone.equals("uploading")){

            holder.fileDoneView.setImageResource(R.drawable.progress);

        } else {

            holder.fileDoneView.setImageResource(R.drawable.checked);

        }

    }

    @Override
    public int getItemCount() {
        return fileNameList.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        View mView;

        public TextView fileNameView;
        public ImageView fileDoneView;

        public ViewHolder(View itemView) {
            super(itemView);

            mView = itemView;

            fileNameView = (TextView) mView.findViewById(R.id.upload_filename);
            fileDoneView = (ImageView) mView.findViewById(R.id.upload_loading);


        }

    }

}
公共列表文件名列表;
公共列表文件管理员;
公共上载ListAdapter(列表文件名列表、ListfileDoneList){
this.fileDoneList=fileDoneList;
this.fileNameList=fileNameList;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.recycle_项,parent,false);
返回新的视图持有者(v);
}
@凌驾
公共无效onBindViewHolder(ViewHolder,int位置){
字符串文件名=fileNameList.get(位置);
holder.fileNameView.setText(文件名);
字符串fileDone=fileDoneList.get(位置);
if(fileDone.equals(“上载”)){
holder.fileDoneView.setImageResource(R.drawable.progress);
}否则{
holder.fileDoneView.setImageResource(R.drawable.checked);
}
}
@凌驾
public int getItemCount(){
返回fileNameList.size();
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
视图视图;
公共文本视图文件名视图;
公共图像视图文件doneview;
公共视图持有者(视图项视图){
超级(项目视图);
mView=项目视图;
fileNameView=(TextView)mView.findviewbyd(R.id.upload\u文件名);
fileDoneView=(ImageView)mView.findviewbyd(R.id.upload\u加载);
}
}
}
没有用于发送批次的内容。然而,你可以直接,尽管有点牵扯其中

如果您想走这条路,首先需要知道的是Firebase存储“bucket”的id。如前所述,您可以只获取bucket名称,而不使用
gs://
,并将其传递到GCS资源中

例如,如果我的bucket是
gs://kato sandbox.appspot.com
,那么我使用
kato sandbox.appspot.com

要在Firebase中查找您的bucket名称,请访问并查看列出的URL

    public String getFileName(Uri uri) {
    String result = null;
    if (uri.getScheme().equals("content")) {
        Cursor cursor = getContentResolver().query(uri, null, null, null, 
    null);
        try {
            if (cursor != null && cursor.moveToFirst()) {
                result = 
     cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
             }
        } finally {
            cursor.close();
        }
    }
    if (result == null) {
        result = uri.getPath();
        int cut = result.lastIndexOf('/');
        if (cut != -1) {
            result = result.substring(cut + 1);
        }
    }
    return result;
}
public List<String> fileNameList;
    public List<String> fileDoneList;

public UploadListAdapter(List<String> fileNameList, List<String>fileDoneList){

        this.fileDoneList = fileDoneList;
        this.fileNameList = fileNameList;

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_item, parent, false);
        return new ViewHolder(v);

    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

        String fileName = fileNameList.get(position);
        holder.fileNameView.setText(fileName);

        String fileDone = fileDoneList.get(position);

        if(fileDone.equals("uploading")){

            holder.fileDoneView.setImageResource(R.drawable.progress);

        } else {

            holder.fileDoneView.setImageResource(R.drawable.checked);

        }

    }

    @Override
    public int getItemCount() {
        return fileNameList.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        View mView;

        public TextView fileNameView;
        public ImageView fileDoneView;

        public ViewHolder(View itemView) {
            super(itemView);

            mView = itemView;

            fileNameView = (TextView) mView.findViewById(R.id.upload_filename);
            fileDoneView = (ImageView) mView.findViewById(R.id.upload_loading);


        }

    }

}