无法在Firebase存储中上传pdf文件

时间:2020-07-23 21:10:45

标签: java android firebase firebase-realtime-database firebase-storage

无法将pdf文件上传到Firebase存储 从设备中选择pdf文件后,我收到此消息,并且该文件未存储在Firebase存储器中。 我认为以下给出的消息不是错误;

2020-07-24 02:19:29.170 26041-26041/? I/k.codingeradmi: Late-enabling -Xcheck:jni
2020-07-24 02:19:29.722 26041-26041/com.mk.codingeradmin I/Perf: Connecting to perf service.
2020-07-24 02:19:29.786 26041-26066/com.mk.codingeradmin W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-07-24 02:19:29.793 26041-26041/com.mk.codingeradmin D/FirebaseApp: com.google.firebase.iid.FirebaseInstanceId is not linked. Skipping initialization.
2020-07-24 02:19:29.794 26041-26041/com.mk.codingeradmin D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
2020-07-24 02:19:29.795 26041-26041/com.mk.codingeradmin D/FirebaseApp: com.google.android.gms.measurement.AppMeasurement is not linked. Skipping initialization.
2020-07-24 02:19:29.795 26041-26041/com.mk.codingeradmin I/FirebaseInitProvider: FirebaseApp initialization successful
2020-07-24 02:19:29.823 26041-26069/com.mk.codingeradmin W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-07-24 02:19:29.835 26041-26069/com.mk.codingeradmin I/FirebaseAuth: [FirebaseAuth:] Loading module via FirebaseOptions.
2020-07-24 02:19:29.835 26041-26069/com.mk.codingeradmin I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden method Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets; (light greylist, linking)
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden field Landroid/graphics/Insets;->left:I (light greylist, linking)
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden field Landroid/graphics/Insets;->right:I (light greylist, linking)
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden field Landroid/graphics/Insets;->top:I (light greylist, linking)
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden field Landroid/graphics/Insets;->bottom:I (light greylist, linking)
2020-07-24 02:19:30.040 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2020-07-24 02:19:30.045 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2020-07-24 02:19:30.058 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden method Landroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic; (light greylist, linking)
2020-07-24 02:19:30.145 26041-26041/com.mk.codingeradmin W/Looper: Slow Looper: Activity com.mk.codingeradmin/.MainActivity is 389ms late (wall=343ms running=0ms ClientTransaction{ callbacks=[android.app.servertransaction.LaunchActivityItem] lifecycleRequest=android.app.servertransaction.ResumeActivityItem }) because of 1 msg, msg 1 took 525ms (late=1ms h=android.app.ActivityThread$H w=110)
2020-07-24 02:19:30.201 26041-26071/com.mk.codingeradmin I/Adreno: QUALCOMM build                   : 4e21c4c, I21281c58c8
    Build Date                       : 03/01/19
    OpenGL ES Shader Compiler Version: EV031.25.03.02
    Local Branch                     : 
    Remote Branch                    : refs/tags/AU_LINUX_ANDROID_LA.UM.7.5.R1.09.00.00.464.039
    Remote Branch                    : NONE
    Reconstruct Branch               : NOTHING
2020-07-24 02:19:30.201 26041-26071/com.mk.codingeradmin I/Adreno: Build Config                     : S L 6.0.7 AArch32
2020-07-24 02:19:30.207 26041-26071/com.mk.codingeradmin I/Adreno: PFP: 0x005ff110, ME: 0x005ff066
2020-07-24 02:19:30.211 26041-26071/com.mk.codingeradmin I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
2020-07-24 02:19:30.211 26041-26071/com.mk.codingeradmin I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
2020-07-24 02:19:30.212 26041-26071/com.mk.codingeradmin I/OpenGLRenderer: Initialized EGL, version 1.4
2020-07-24 02:19:30.212 26041-26071/com.mk.codingeradmin D/OpenGLRenderer: Swap behavior 2
2020-07-24 02:19:59.634 26041-26041/com.mk.codingeradmin V/ActivityThread: handleTrimMemory:com.mk.codingeradmin

我不明白我的代码会发生什么

activity_code_upload.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context="com.mk.codingeradmin.CodeUploadActivity">
    <Spinner
        android:id="@+id/spinner"
        android:layout_centerVertical="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

    <EditText
        android:layout_below="@+id/spinner"
        android:id="@+id/editTextFileName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter a name for your file"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Large" />

    <Button
        android:id="@+id/buttonUploadFile"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/editTextFileName"
        android:text="Upload PDF" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="vertical">


        <ProgressBar
            android:id="@+id/progressbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:visibility="gone" />

        <TextView
            android:id="@+id/textViewStatus"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="No file selected"
            android:textAlignment="center"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Large" />

        <TextView
            android:id="@+id/textViewUploads"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="View Uploads"
            android:textAlignment="center"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"
            android:textColor="@color/colorPrimaryDark" />

    </LinearLayout>
</RelativeLayout>

CodeUploadActivity.java

package com.mk.codingeradmin;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.OnProgressListener;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;

import java.util.ArrayList;
import java.util.List;

public class CodeUploadActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener {
    final static int PICK_PDF_CODE = 2342;

    //these are the views
    TextView textViewStatus;
    EditText editTextFilename;
    ProgressBar progressBar;
    Spinner spinner;
// Firebase reference
    StorageReference mStorageReference;
    DatabaseReference mDatabaseReference;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_code_upload);

        textViewStatus =  findViewById(R.id.textViewStatus);
        editTextFilename = findViewById(R.id.editTextFileName);
        progressBar =findViewById(R.id.progressbar);
        spinner=findViewById(R.id.spinner);


        findViewById(R.id.buttonUploadFile).setOnClickListener(this);
        findViewById(R.id.textViewUploads).setOnClickListener(this);

        List<String> categories=new ArrayList< String>();
        categories.add("java");
        categories.add("python");
        categories.add("c");
        categories.add("cpp");
        categories.add("javascript");

        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,categories);
        spinner.setAdapter(adapter);
        mDatabaseReference = FirebaseDatabase.getInstance().getReference("uploads");
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        String item = parent.getItemAtPosition(position).toString();
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }



    private void getPDF() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(this,
                Manifest.permission.READ_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
            Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
                    Uri.parse("package:" + getPackageName()));
            startActivity(intent);
            return;
        }

        //creating an intent for file chooser
        Intent intent = new Intent();
        intent.setType("application/pdf");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_PDF_CODE);
    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //when the user choses the file
        if (requestCode == PICK_PDF_CODE && resultCode == RESULT_OK && data != null && data.getData() != null) {
            //if a file is selected
            if (data.getData() != null) {
                //uploading the file 
                uploadFile(data.getData());
            }else{
                Toast.makeText(this, "No file chosen", Toast.LENGTH_SHORT).show();
            }
        }
    }

    private void uploadFile(Uri data) {

        progressBar.setVisibility(View.VISIBLE);
        final String path=String.valueOf(spinner.getSelectedItem());
        StorageReference sRef = mStorageReference.child(path + System.currentTimeMillis() + ".pdf");
        sRef.putFile(data)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @SuppressWarnings("VisibleForTests")
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        progressBar.setVisibility(View.GONE);
                        textViewStatus.setText("File Uploaded Successfully");
                        Task<Uri> uri = taskSnapshot.getStorage().getDownloadUrl();
                        Upload upload = new Upload(editTextFilename.getText().toString(), uri.getResult().toString());
                        mDatabaseReference.child(path).child(mDatabaseReference.push().getKey()).setValue(upload);
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).show();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @SuppressWarnings("VisibleForTests")
                    @Override
                    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
                        textViewStatus.setText((int) progress + "% Uploading...");
                    }
                });

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.buttonUploadFile:
                getPDF();
                break;
        }
    }


}

问题:

我怎么做导致了该错误?我是Django和Python的新手。

非常感谢您!

0 个答案:

没有答案