【问题标题】:Unable to resolve symbol storageRef in firebase无法解析 Firebase 中的符号 storageRef
【发布时间】:2024-04-28 17:00:02
【问题描述】:

我正在使用 fire base 存储图像,我在存储中遇到错误 Ref 无法解析符号,请帮助。

public class Sample extends Activity {
public static final String GridViewDemo_ImagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pencilrulerlearner/";
StorageReference riversRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    File targetDirector = new File(GridViewDemo_ImagePath);
    File[] files = targetDirector.listFiles();
    for (File file1 : files) {
        Uri file= Uri.fromFile(file1);


        storageRef.child("images/" + file.getLastPathSegment());
      UploadTask  uploadTask = riversRef.putFile(file);


        uploadTask.addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception exception) {
                // Handle unsuccessful uploads
            }
        }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                // taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
                Uri downloadUrl = taskSnapshot.getDownloadUrl();
            }
        });
    }

}
}

即使我将 storageRef 更改为riversRef ,我也会收到以下错误

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.storage.StorageReference com.google.firebase.storage.StorageReference.child(java.lang.String)' on a null object reference
        at nidhinkumar.firebaseexample.Sample.onCreate(Sample.java:31)
        at android.app.Activity.performCreate(Activity.java:6092)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468)

            

【问题讨论】:

  • 你在哪里初始化storageRef
  • 您是否 100% 确定该文件!=null 如果文件为空,请尝试添加该路径:images/
  • storageRef 未初始化

标签: android firebase firebase-storage


【解决方案1】:

变量storageRef未初始化。

首先,创建一个FirebaseStorage变量:

storage = FirebaseStorage.getInstance();

然后像这样初始化StorageReference类型变量storageRef

storageRef = storage.getReference();

【讨论】:

    【解决方案2】:

    做一件简单的事导入这个文件

    import com.google.firebase.storage.StorageReference;

    欢迎您:)

    【讨论】:

      【解决方案3】:

      您收到此错误是因为 storageRef 变量尚未初始化。任何在 null 引用上调用方法的尝试都将导致 java.lang.NullPointerException

      在您的情况下,您应该首先获得对 FirebaseStorage 实例的引用:

      FirebaseStorage storage = FirebaseStorage.getInstance();
      

      然后,您可以通过getReferenceFromUrl 方法获得对所需存储的引用。

      StorageReference storageRef = storage.getReferenceFromUrl("Url to storage");
      

      以下storageRef已初始化,可以使用了。

      【讨论】:

      • 我已经初始化了存储引用,但我收到以下错误:原因:java.lang.IllegalStateException:名称为 [DEFAULT] 的 FirebaseApp 不存在。在 com.google.firebase.FirebaseApp.getInstance(Unknown Source) 在 com.google.firebase.FirebaseApp.getInstance(Unknown Source) 在 com.google.firebase.storage.FirebaseStorage.getInstance(Unknown Source)
      • 你能告诉我我该怎么做吗
      • @AbacusRathu:看看这个相关的问题:*.com/questions/37342403/…
      最近更新 更多