簡體   English   中英

我如何判斷它是圖像還是視頻 - Firebase Storage/Firestore

[英]How can I tell if it's an image or video - Firebase Storage/Firestore

我在數組中的 Firestore 上有幾張圖片。 該數組位於 object(房子)中。 該數組包含兩個圖像,它們都在存儲中。 我每次只保存 ULS。 我現在如何檢查它是來自 Firestore 的圖像還是視頻? 上傳時我用的是task 因為我用的是上傳到存儲時的時間,所以我也獲取不到文件名。

     Tasks.whenAllSuccess<UploadTask>(tasks).addOnSuccessListener {

        val downloadUrls = mutableListOf<String>()

        var count = 0

        for(i in 0 until tasks.size){
         tasks[i].result.metadata!!.reference!!.downloadUrl.addOnSuccessListener {uri->

                downloadUrls.add(uri.toString())
                count++

             if(count == tasks.size)
             {
                 progressDialog.dismiss()

                 saveInDatabase(downloadUrls)
             }


         }

          }
        
    }



   private fun saveInDatabase(downloadUrls: MutableList<String>) {

    var time = System.currentTimeMillis().toString()

    val userHashMap = HashMap<String,Any>()


    if(downloadUrls.isNotEmpty())
    {

        userHashMap["timestamp"] = time
        userHashMap["type"] = mainType
        userHashMap["img"] = mainImage
        userHashMap["preis"] = 845
        userHashMap["listImages"] = downloadUrls

    }

    if(latt != 0.0 && longt != 0.0)
    {
        userHashMap["long"] = longt
        userHashMap["lat"] = latt
    }

    if(objektBeschreibung.text.toString().isNotEmpty())
    {
        userHashMap["beschreibung"] = objektBeschreibung.text.toString()
    }

    if(objektName.text.toString().isNotEmpty())
    {
        userHashMap["name"] = objektName.text.toString()
    }

    db.collection(  "USER").document(auth.currentUser!!.uid).collection("Objekte").document(time).set(userHashMap, SetOptions.merge()).addOnSuccessListener {
        Toast.makeText(ctx,"Erfolgreich angelegt",Toast.LENGTH_LONG).show()
     }

   }

正如@DougStevenson 在他的評論中已經提到的那樣,Firestore 不知道存儲中的文件類型。 要知道這一點,您有兩種解決方案。 第一個是搜索文件的下載 URL 以查找擴展名,然后相應地處理文件。 或者,不是將 URL 存儲在數據庫中的數組中,而是將它們存儲在 map 中:

$docId (documents)
  |
  --- urls (map)
       |
       --- "https://...": "audio"
       |
       --- "https://...": "video"

其中鍵是實際的 URL,值是文件的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM