如何以编程方式查找firebase order-URL中的文件名?

时间:2018-04-15 16:16:21

标签: android firebase firebase-storage

我正在使用firebase,并且其中包含一些带有.pdf文件的Order-URL。 这是一张图片,显示了它: https://www.jqueryscript.net/demo/Basic-jQuery-Gallery-with-Paginated-Thumbnail-Navigation-ImageGallery-js/

我有这段代码:

   @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_wiki, container, false);

    // Inflate the layout for this fragment
    WebView webView = (WebView) view.findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);

    //FireBase Connection
    StorageReference mStorageRef;
    mStorageRef = FirebaseStorage.getInstance().getReference();
    mStorageRef.getDownloadUrl();


    String myPdfUrl = "https://firebasestorage.googleapis.com/v0/b/realtime-chat-46f4c.appspot.com/o/documents%2Fbf307aa5-79ae-4532-8128-ee394537b357.pdf?alt=media&token=2d0c5329-4717-4adc-9418-6614913e5bfa";
   /* String url = "http://docs.google.com/gview?embedded=true&url=" + myPdfUrl;
    webView.loadUrl(url);*/

    try {
        myPdfUrl = URLEncoder.encode(myPdfUrl,"UTF-8");
        webView.loadUrl("https://docs.google.com/gview?embedded=true&url=" + myPdfUrl);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    return view;
}

我想要的是:   - 从链接获取firebase中Order-Url的所有文件名,我在上图中显示   - 按顺序获取每个文件名的下载路径的URL

当我只是复制下载URL时,我可以轻松地将其添加到代码中并加载文件。但是我想要它动态,意味着,总是,当我在firebase中的这个存储中添加一个文件时,应该检测并添加/删除它,等等。

我不想一直更改我的代码,只是为了添加新的download-url文件。

有人有经验,或者想过如何解决它?

非常感谢

1 个答案:

答案 0 :(得分:1)

您的用例听起来像是使用Firebase's Cloud Functions的绝佳机会,尤其是Cloud Storage trigger部分。

基本思想是,您可以编写在发生某些事件时触发的代码。在您的情况下,事件是文件上传到您的" Order-Url"并且您只需要编写一些代码来记录这些文件的下载URL。

这种方法非常及时提前#34;作为替代方案,您可以使用Google Storage SDKAPIs查询Firebase存储用于文件的基础存储桶和文件夹。