试图上传到Firebase存储失败 [英] Trying to upload to firebase storage fail

查看:115
本文介绍了试图上传到Firebase存储失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个小问题,我试图上传一个位于原始文件夹中的.txt文件。这是我的代码。我想要的是,当我启动应用程序时,它会自动上传到.txt文件的存储空间,我禁用了firebase存储中的规则,无需授权即可存储。


private StorageReference mStorageRef;

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

mStorageRef = FirebaseStorage.getInstance()。getReference();


$ b @Override
protected void onStart(){
super.onStart();

String path =android.resource://+ getPackageName()+/+ R.raw.grupos;
Uri file = Uri.fromFile(new File(path));
StorageReference riversRef = mStorageRef.child(text /);

riversRef.putFile(file)
.addOnSuccessListener(new OnSuccessListener< UploadTask.TaskSnapshot>(){
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
//获取上传内容的URL
Toast.makeText(MainActivity.this,Se subio el archivo ..,Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener(){
@Override
public void onFailure(@NonNull异常异常){
Toast.makeText(MainActivity.this, NO Se subio el archivo ..,Toast.LENGTH_SHORT).show();
}
});


$ b}
}

LOGCAT


08-16 23:06:05.524 16372-16372 / com.example.usuario.ottasubirarchivos
E / StorageException :
/android.resource:/com.example.usuario.ottasubirarchivos/raw/grupos.txt:
打开失败:ENOENT(没有这样的文件或目录)
java.io.FileNotFoundException:
/android.resource:/com.example.usuario.ottasubirarchivos/raw/grupos.txt:
打开失败:在libcore.io.IoBridge上ENOENT(没有这样的文件或目录)
。打开(IoBridge.java:416)
在java.io.FileInputStream。(FileInputStream.java:78)
(FileInputStream.java:105)

android.content.ContentResolver.openInputStream(ContentResolver.java:447)
com.google.firebase.storage。 UploadTask(未知来源)
,位于com.google.firebase.storage.StorageReference.putFile(未知
来源)
at
com.example.usuario.ottasubirarchivos.MainActivity.onStart (MainActivity.java:51)
at
android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1176)
在android.app.Activity.performStart(Activity.java:5114)

android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2164)
at
android.app .ActivityThread.handleLaunchActivity(ActivityThread.java:2254)
at android.app.ActivityThread.access $ 600(ActivityThread.java:141)
at
android.app.ActivityThread $ H.handleMessage( ActivityThread.java:1234)
在android.os.Handler.dispatchMessage(Handler.java:99)
(android.app.ActivityThread.main(ActivityThread.java:5069))
at java.lang.reflect.Method.invokeNative(Native方法)
在java.lang.reflect.Method.invoke(Method.java:511)

com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
在dalvik.system.NativeStart.main(本地方法)
导致:libcore.io.ErrnoException:打开失败:ENOENT(没有这样的
文件或目录)
在libcore.io.Posix .open(本地方法)
在libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
在libcore.io.IoBridge.open(IoBridge.java:400)
在java .io.FileInputStream。(FileInputStream.java:78)
在java.io.F ileInputStream。(FileInputStream.java:105)
at
android.content.ContentResolver.openInputStream(ContentResolver.java:447)
at com.google.firebase.storage.UploadTask。(Unknown Source )
at com.google.firebase.storage.StorageReference.putFile(Unknown
Source)
at
com.example.usuario.ottasubirarchivos.MainActivity.onStart(MainActivity.java: 51)
at
android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1176)
在android.app.Activity.performStart(Activity.java:5114)

android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2164)
at
android.app .ActivityThread.handleLaunchActivity(ActivityThread.java:2254)
at android.app.ActivityThread.access $ 600(ActivityThread.java:141)
at
android.app.ActivityThread $ H.handleMessage( ActivityThread.java:1234)
在android.os.Handler.dispatchMessage(Handler.java:99)
(android.app.ActivityThread.main(ActivityThread.java:5069))
at java.lang.reflect.Method.invokeNative(Native方法)
在java.lang.reflect.Method.invoke(Method.java:511)

com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
在dalvik.system.NativeStart.main(本地方法)


我不知道为什么它进入失败侦听器,有什么想法? / b>

解决方案

  @Override 
protected void onStart(){
super.onStart();

String path =android.resource://+ getPackageName()+/+ R.raw.grupos;
Uri file = Uri.fromFile(new File(path));
StorageReference riversRef = mStorageRef.child(text /);


InputStream stream = new FileInputStream(new File(file.getPath()););
riversRef.putStream(stream)
.addOnSuccessListener(new OnSuccessListener< UploadTask.TaskSnapshot>(){
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot){
//获取上传内容的URL
Toast.makeText(MainActivity.this,Se subio el archivo ..,Toast.LENGTH_SHORT).show();
}
} )
.addOnFailureListener(new OnFailureListener(){
@Override
public void onFailure(@NonNull异常异常){
Toast.makeText(MainActivity.this,NO Se subio el archivo ..,Toast.LENGTH_SHORT).show();
}
});



}


I have this little problem, I'm trying to upload a .txt file located in raw folder. Here is my code. What I want is that when I start the app it automatically uploads to the storage that .txt file, I have disabled the rules in firebase storage to store without auth.

public class MainActivity extends AppCompatActivity {

    private StorageReference mStorageRef;

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

        mStorageRef  = FirebaseStorage.getInstance().getReference();         

    }

    @Override
    protected void onStart() {
        super.onStart();

        String path = "android.resource://" + getPackageName() + "/" + R.raw.grupos;
        Uri file = Uri.fromFile(new File(path));
        StorageReference riversRef = mStorageRef.child("text/");

        riversRef.putFile(file)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        // Get a URL to the uploaded content
                        Toast.makeText(MainActivity.this, "Se subio el archivo..", Toast.LENGTH_SHORT).show();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        Toast.makeText(MainActivity.this, "NO Se subio el archivo..", Toast.LENGTH_SHORT).show();
                    }
                });



    }
}

LOGCAT

08-16 23:06:05.524 16372-16372/com.example.usuario.ottasubirarchivos E/StorageException: /android.resource:/com.example.usuario.ottasubirarchivos/raw/grupos.txt: open failed: ENOENT (No such file or directory) java.io.FileNotFoundException: /android.resource:/com.example.usuario.ottasubirarchivos/raw/grupos.txt: open failed: ENOENT (No such file or directory) at libcore.io.IoBridge.open(IoBridge.java:416) at java.io.FileInputStream.(FileInputStream.java:78) at java.io.FileInputStream.(FileInputStream.java:105) at android.content.ContentResolver.openInputStream(ContentResolver.java:447) at com.google.firebase.storage.UploadTask.(Unknown Source) at com.google.firebase.storage.StorageReference.putFile(Unknown Source) at com.example.usuario.ottasubirarchivos.MainActivity.onStart(MainActivity.java:51) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1176) at android.app.Activity.performStart(Activity.java:5114) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2164) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2254) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5069) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory) at libcore.io.Posix.open(Native Method) at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) at libcore.io.IoBridge.open(IoBridge.java:400) at java.io.FileInputStream.(FileInputStream.java:78)  at java.io.FileInputStream.(FileInputStream.java:105)  at android.content.ContentResolver.openInputStream(ContentResolver.java:447)  at com.google.firebase.storage.UploadTask.(Unknown Source)  at com.google.firebase.storage.StorageReference.putFile(Unknown Source)  at com.example.usuario.ottasubirarchivos.MainActivity.onStart(MainActivity.java:51)  at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1176)  at android.app.Activity.performStart(Activity.java:5114)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2164)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2254)  at android.app.ActivityThread.access$600(ActivityThread.java:141)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)  at android.os.Handler.dispatchMessage(Handler.java:99)  at android.os.Looper.loop(Looper.java:137)  at android.app.ActivityThread.main(ActivityThread.java:5069)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)  at dalvik.system.NativeStart.main(Native Method)

I don't know why it enters onFailure listener, any idea ?

解决方案

Try this

@Override
protected void onStart() {
    super.onStart();

    String path = "android.resource://" + getPackageName() + "/" + R.raw.grupos;
    Uri file = Uri.fromFile(new File(path));
    StorageReference riversRef = mStorageRef.child("text/");


    InputStream stream = new FileInputStream(new File(file.getPath()););
    riversRef.putStream(stream)
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    // Get a URL to the uploaded content
                    Toast.makeText(MainActivity.this, "Se subio el archivo..", Toast.LENGTH_SHORT).show();
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception exception) {
                    Toast.makeText(MainActivity.this, "NO Se subio el archivo..", Toast.LENGTH_SHORT).show();
                }
            });



}

这篇关于试图上传到Firebase存储失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆