Исключение удаленного в firebase-хранилище - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь смонтировать обрезанное изображение, метод, с которого оно запускается, во фрагменте, который через интерфейс соединяется с действием и запускает его, это метод sendToGallery (FirebaseAuth firebaseAuth) и поместить его в круг Просмотр изображения, однако я пропускаю это исключение:

E/NetworkRqFactoryProxy: NetworkRequestFactoryProxy failed with a RemoteException:
         com.google.android.gms.dynamite.DynamiteModule$zzc: Remote load failed. No local fallback found.
             at com.google.android.gms.dynamite.DynamiteModule.zza(Unknown Source)
             at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
             at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
             at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
             at com.google.firebase.storage.UploadTask.run(Unknown Source)
             at com.google.firebase.storage.zzs.run(Unknown Source)
             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
             at java.lang.Thread.run(Thread.java:818)
          Caused by: com.google.android.gms.dynamite.DynamiteModule$zzc: Failed to get module context
             at com.google.android.gms.dynamite.DynamiteModule.zzc(Unknown Source)
             at com.google.android.gms.dynamite.DynamiteModule.zza(Unknown Source)
             at com.google.android.gms.dynamite.DynamiteModule.zza(Unknown Source) 
             at com.google.android.gms.internal.zzeyb.<init>(Unknown Source) 
             at com.google.android.gms.internal.zzeyb.zzi(Unknown Source) 
             at com.google.firebase.storage.StorageReference.zzclq(Unknown Source) 
             at com.google.firebase.storage.UploadTask.run(Unknown Source) 
             at com.google.firebase.storage.zzs.run(Unknown Source) 
             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
             at java.lang.Thread.run(Thread.java:818) 
E/UploadTask: Unable to create a network request from metadata
              android.os.RemoteException
                  at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
                  at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
                  at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
                  at com.google.firebase.storage.UploadTask.run(Unknown Source)
                  at com.google.firebase.storage.zzs.run(Unknown Source)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                  at java.lang.Thread.run(Thread.java:818)
E/StorageException: StorageException has occurred.
                    An unknown error occurred, please check the HTTP result code and inner exception for server response.
                     Code: -13000 HttpResult: 0
E/StorageException: null
                    android.os.RemoteException
                        at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
                        at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
                        at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
                        at com.google.firebase.storage.UploadTask.run(Unknown Source)
                        at com.google.firebase.storage.zzs.run(Unknown Source)
                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                        at java.lang.Thread.run(Thread.java:818)
E/StorageException: StorageException has occurred.
                    An unknown error occurred, please check the HTTP result code and inner exception for server response.
                     Code: -13000 HttpResult: 0
E/StorageException: null
                    android.os.RemoteException
                        at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
                        at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
                        at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
                        at com.google.firebase.storage.UploadTask.run(Unknown Source)
                        at com.google.firebase.storage.zzs.run(Unknown Source)
                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                        at java.lang.Thread.run(Thread.java:818)

Насколько я мог прочитать (так как я новичок в этом Firebase, фактически я использую его впервые), это связано с проблемами с разрешениями или с версиями сервисов Google Play. Однако мой телефон в последней версии (6 сентября 2008 г.). У меня есть 2 необходимых разрешения, которые я понимаю, это Интернет и внешнее чтение, и я добавил удаленный доступ (<uses-permission android: name = "android.permission.ACCESS_NETWORK_STATE" / >). я также включить правила как общедоступные, но у меня все еще есть проблема. Я не знаю, что еще делать, я добавляю код:

public class MainActivity extends AppCompatActivity{NavigationView navigationView;
DrawerLayout drawerLayout;
Toolbar toolbar;
FirebaseAuth firebaseAuth;
private ProgressDialog loadingBar;
private StorageReference storageReference;
DatabaseReference databaseReference;
FirebaseAuth firebaseAuthPhtoto;
String currentUserID;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        navigationView= findViewById(R.id.navigation_view);
        drawerLayout= findViewById(R.id.drawerLayout);
        toolbar= findViewById(R.id.toolbar);
        firebaseAuth= FirebaseAuth.getInstance();

        storageReference= FirebaseStorage.getInstance().getReference().child("Profile_Images");
        FirebaseStorage.getInstance().setMaxUploadRetryTimeMillis(2000);

        loadingBar= new ProgressDialog(this);

        setSupportActionBar(toolbar);
        getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_view_stream_white_24dp);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        sendFragment(new loginFragment(),"Login user" );

        //: if request.auth != null

        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()){

                    case(R.id.add_state):
                        sendFragment(null, (String) item.getTitle());
                        return true;

                    case(R.id.profile):

                        return true;

                    case(R.id.home):

                        return true;

                    case(R.id.friend):

                        return true;

                    case(R.id.find_friend):

                        return true;

                    case(R.id.settings):

                        return true;

                    case(R.id.logout):
                        firebaseAuth.signOut();
                        sendFragment(new loginFragment(),"Login user" );
                        return true;

                }

                return false;
            }
        });



    }

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

        FirebaseUser firebaseUser= firebaseAuth.getCurrentUser();
        if (firebaseUser==null){
            sendFragment(new loginFragment(),"Login user" );

        }


    }

public void sendToGallery(FirebaseAuth firebaseAuth) {
        firebaseAuthPhtoto= firebaseAuth;
        databaseReference= FirebaseDatabase.getInstance().getReference().child("Users").child(firebaseAuthPhtoto.getCurrentUser().getUid());
        currentUserID=firebaseAuthPhtoto.getCurrentUser().getUid();
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_GET_CONTENT);
        intent.setType("image/*");
        startActivityForResult(intent, 1);
    }

 public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode==1 && resultCode==RESULT_OK  && data!=null){
            Uri image= data.getData();

            CropImage.activity()
                    .setGuidelines(CropImageView.Guidelines.ON)
                    .setAspectRatio(1, 1)
                    .start(this);

        }


        if (requestCode==CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE){
            CropImage.ActivityResult result= CropImage.getActivityResult(data);
            if (resultCode == RESULT_OK){

                loadingBar.setTitle("Profile Image");
                loadingBar.setMessage("Please wait, while we updating your profile image...");
                loadingBar.show();
                loadingBar.setCanceledOnTouchOutside(true);

                Uri resultUri= result.getUri();
                StorageReference storageReferenceImage= storageReference.child(currentUserID + ".jpg");
                storageReferenceImage.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {

                        if(task.isSuccessful()){
                            loadingBar.dismiss();
                            Toast.makeText(MainActivity.this, "Profile Image stored successfully to Firebase storage...", Toast.LENGTH_SHORT).show();

                            final String downloadUrl = task.getResult().getDownloadUrl().toString();

                            databaseReference.child("profileimage").setValue(downloadUrl)
                                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                                        @Override
                                        public void onComplete(@NonNull Task<Void> task) {
                                            if (task.isSuccessful()) {


                                                Toast.makeText(MainActivity.this, "Profile Image stored to Firebase Database Successfully...", Toast.LENGTH_SHORT).show();

                                                SendToSettingFragment();
                                            } else {

                                                String message = task.getException().getMessage();
                                                Log.v("------------------",message);
                                                Toast.makeText(MainActivity.this, "Error Occured: " + message, Toast.LENGTH_SHORT).show();
                                                loadingBar.dismiss();
                                            }
                                        }
                                    });

                        }else{
                            String message = task.getException().getMessage();
                            Log.v("------------Any--------",message);
                            Toast.makeText(MainActivity.this, "Error Occured: " + message, Toast.LENGTH_LONG).show();
                            loadingBar.dismiss();
                        }
                    }
                });
            }
        }

    }
...