如何通过编程获取Firebase Order-URL中的文件名?
嘿,这问题其实很简单,Firebase Storage已经给我们提供了现成的方法来获取文件名,分两种场景给你讲:
场景1:你还持有对应的StorageReference对象
这是最直接的方式,如果你已经有指向那个PDF文件的StorageReference,直接调用getName()方法就能拿到完整的文件名(包括后缀.pdf):
// 假设你已经有了指向目标PDF的StorageReference StorageReference pdfFileRef = FirebaseStorage.getInstance().getReference().child("path/to/your/order_file.pdf"); String fileName = pdfFileRef.getName(); // 结果就是"order_file.pdf"
场景2:你只有下载URL(也就是你说的Order-URL)
如果手里只有生成好的下载链接,也不用自己去字符串里扒文件名——Firebase提供了getReferenceFromUrl()方法,可以把URL转回StorageReference,再调用getName()就行:
String orderUrl = "你的Firebase下载URL"; try { StorageReference pdfRef = FirebaseStorage.getInstance().getReferenceFromUrl(orderUrl); String fileName = pdfRef.getName(); // 拿到文件名后就可以做你需要的操作了,比如展示在UI或者存起来 } catch (IllegalArgumentException e) { // 这里要处理URL无效的情况,比如格式不对或者没有访问权限 e.printStackTrace(); }
结合你的代码示例
把这段逻辑加到你的onCreateView里大概是这样:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_wiki, container, false); WebView webView = (WebView) view.findViewById(R.id.webView1); webView.getSettings().setJavaScriptEnabled(true); // Firebase Connection StorageReference mStorageRef = FirebaseStorage.getInstance().getReference(); // 示例:从URL获取文件名 String yourOrderUrl = "这里替换成你的Order-URL"; try { StorageReference refFromUrl = FirebaseStorage.getInstance().getReferenceFromUrl(yourOrderUrl); String fileName = refFromUrl.getName(); // 可以在这里把文件名展示出来或者做其他处理 Log.d("PDF文件名", fileName); } catch (IllegalArgumentException e) { Log.e("Firebase错误", "无效的下载URL", e); } return view; }
提醒一下:别自己手动去解析URL字符串哦,Firebase的下载URL格式可能会有调整,用官方API才是最稳的方式。
内容的提问来源于stack exchange,提问作者New GenerationFashion
相关产品推荐
相关产品推荐

