Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android firebase获取图像URL_Android_Firebase_Firebase Storage - Fatal编程技术网

Android firebase获取图像URL

Android firebase获取图像URL,android,firebase,firebase-storage,Android,Firebase,Firebase Storage,我正在将一个图像从本地存储上传到firebase,尽管我希望通过代码获得上传的图像URL并将其存储到字符串中。我该怎么做 StorageReference filepath1 = mStorage.child("Blog_Image").child(mcontentURI.getLastPathSegment() + random()); final String c; filepath1.putFile(mcontentURI).addOnSu

我正在将一个图像从本地存储上传到firebase,尽管我希望通过代码获得上传的图像URL并将其存储到字符串中。我该怎么做

        StorageReference filepath1 = mStorage.child("Blog_Image").child(mcontentURI.getLastPathSegment() + random());

        final String c;
        filepath1.putFile(mcontentURI).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                final Uri downlaodUrl = taskSnapshot.getDownloadUrl();
                String b = downlaodUrl.toString();
                c = b;

            }

        });
StorageReference filepath1=mStorage.child(“Blog_Image”).child(mcontentURI.getLastPathSegment()+random());
最终字符串c;
filepath1.putFile(mcontentURI).addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
最终Uri downlaodUrl=taskSnapshot.getDownloadUrl();
字符串b=downlaodUrl.toString();
c=b;
}
});

尝试以下更改。它应该在以下方面发挥作用:

StorageReference filepath1 = mStorage.child("Blog_Image").child(mcontentURI.getLastPathSegment() + random());
    public static String c;
    filepath1.putFile(mcontentURI).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            String b = taskSnapshot.getDownloadUrl().toString();
            c = b;
        }
    });
StorageReference filepath1=mStorage.child(“Blog_Image”).child(mcontentURI.getLastPathSegment()+random());
公共静态字符串c;
filepath1.putFile(mcontentURI).addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
字符串b=taskSnapshot.getDownloadUrl().toString();
c=b;
}
});

尝试以下更改。它应该在以下方面发挥作用:

StorageReference filepath1 = mStorage.child("Blog_Image").child(mcontentURI.getLastPathSegment() + random());
    public static String c;
    filepath1.putFile(mcontentURI).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            String b = taskSnapshot.getDownloadUrl().toString();
            c = b;
        }
    });
StorageReference filepath1=mStorage.child(“Blog_Image”).child(mcontentURI.getLastPathSegment()+random());
公共静态字符串c;
filepath1.putFile(mcontentURI).addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
字符串b=taskSnapshot.getDownloadUrl().toString();
c=b;
}
});


您的代码似乎正是这样做的。有什么问题吗?没有。因为我不能把它分配给最后一个变量,哦,明白了。您希望从内部类导出值。这将需要一些固定长度数组的魔法,如中所示。但是请注意,变量
c
只会在
onSuccess()运行一次后获取其值。因此,通常所有需要访问下载URL的代码都应该在
onSuccess
方法中。是否有其他方法可以获取图像URL?基本上,我有一个字符串,包含文本和多个X本地图像。我想用上传的firebase URL替换这些本地图像。因此,我需要将这些上传的图像URL存储到多个字符串中。然后替换本地图像“C”ontent://....“你的代码似乎正是这样做的。有什么问题吗?没有。因为我不能把它分配给最后一个变量,哦,明白了。您希望从内部类导出值。这将需要一些固定长度数组的魔法,如中所示。但是请注意,变量
c
只会在
onSuccess()运行一次后获取其值。因此,通常所有需要访问下载URL的代码都应该在
onSuccess
方法中。是否有其他方法可以获取图像URL?基本上,我有一个字符串,包含文本和多个X本地图像。我想用上传的firebase URL替换这些本地图像。因此,我需要将这些上传的图像URL存储到多个字符串中。然后替换本地图像“C”ontent://....“它有着腐蚀性的firebase URL。它不起作用,我不能将c分配给b,因为它是最终的variable@rustymolle-对不起,我以为我在第一次答复中就解决了这个问题。但现在我有了。将final更改为Static,它将工作。保留为null:(@Rustymole-你能单独检查一下,如果'b'也是空的。或者只是'c'。如果'b'可以,那么你所需要做的就是在类的开头声明'public static String c'。它应该可以工作,但这不可能是正确的,因为它输出的图像很好。它不会工作,因为我不能将c分配给b,因为它是最终的variable@rustymolle-对不起,我我想我在第一次答复中已经解决了这个问题。但现在我已经解决了。将final更改为Static,它将工作。保持为null:(@rustymolle-你能单独检查一下,如果'b'也是空的。或者只是'c'。如果'b'可以,那么你所需要做的就是在类的开头声明'public static String c'。它应该可以工作,但这不可能是正确的,因为它输出的图像很好。