在 Android 中,“FirebaseApp 未使用存储桶名称初始化。”是什么意思?

问题描述 投票:0回答:3

我编写了这段代码,将图像上传到带有子目录“photos”的 firebase。

我发现这个错误:

java.lang.IllegalStateException:FirebaseApp 未使用存储桶名称进行初始化。

    public class Firebase extends AppCompatActivity {
        public TextView text1;
        public Button button1;
        public Button button2;
        public StorageReference mStorage;
        public ProgressDialog mProgress;
        public static final int GALLERY_INTENT = 2;
        public static final String FIREBASE_URL = "https://ivepos.firebaseio.com/weather";

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(firebase);
            mProgress = new ProgressDialog(this);
            mStorage = FirebaseStorage.getInstance().getReference();

            button1 = (Button) findViewById(R.id.button1);
            button1.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v) {
                    Intent i = new Intent(Intent.ACTION_PICK);
                    i.setType("image/*");
                    startActivityForResult(i, GALLERY_INTENT);

                }        
            });
        }

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == GALLERY_INTENT && resultCode == RESULT_OK){
                mProgress.setMessage("Uploading...");
                mProgress.show();
                Uri uri = data.getData();
                StorageReference filepath = mStorage.child("photos").child(uri.getLastPathSegment());
                filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        Toast.makeText(Firebase.this, "Upload done", Toast.LENGTH_SHORT).show();
                        mProgress.dismiss();
                    }
                });
            }
        }

    }
android firebase firebase-realtime-database
3个回答
2
投票

您的

google-services.json
可能不包含 Firebase 存储 URL。如果您在创建项目后立即下载文件,这是可能的,因为创建存储桶可能需要一些时间。

解决方案是从 Firebase Cosnole 下载最新的

google-services.json
,将其放入项目的应用程序目录中,然后重建应用程序。


0
投票

请检查您的存储桶设置。


0
投票

如果您正在处理辅助 Firebase 项目。来自 google-service.json 的 SetStorageBucket 值

val options1 = FirebaseOptions.Builder()
            .setApiKey(data.apiKey)
            .setApplicationId(data.appID)
            .setProjectId(data.projectID)
            .setStorageBucket(data.storageURL)
            .setDatabaseUrl(data.databaseURL)
            .build()
        

        FirebaseApp.initializeApp(context, options1, "agencyDB")
© www.soinside.com 2019 - 2024. All rights reserved.