{"id":956,"date":"2020-11-25T11:56:44","date_gmt":"2020-11-25T03:56:44","guid":{"rendered":"https:\/\/badgameshow.com\/fly\/?p=956"},"modified":"2021-01-19T10:54:29","modified_gmt":"2021-01-19T02:54:29","slug":"android-firebase-storage","status":"publish","type":"post","link":"https:\/\/badgameshow.com\/fly\/android-firebase-storage\/","title":{"rendered":"Android Firebase Storage"},"content":{"rendered":"<h4>1.Firebase\u8207\u5c08\u6848\u9023\u7d50<\/h4>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/03\/FCM1.png\"><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/03\/FCM1-198x300.png\" alt=\"\" \/><\/a><\/p>\n<h4>2.\u9ede\u64caStorage\u5c07library\u8207google-services.json\u5c0e\u5165\u9032\u5c08\u6848<\/h4>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage1.png\"><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage1-300x150.png\" alt=\"\" \/><\/a><\/p>\n<h4>3.\u4fee\u6539Stroage\u898f\u5247<\/h4>\n<pre><code class=\"line-numbers\">service firebase.storage {\n  match \/b\/{bucket}\/o {\n    match \/{allPaths=**} {\n      allow read, write;\n    }\n  }\n}\n<\/code><\/pre>\n<h4>4.\u4e0a\u50b3\u6a94\u6848\u5230Storage<\/h4>\n<pre><code class=\"language-Kotlin line-numbers\">\/\/\u8a2d\u5b9a\u8def\u5f91\u8207\u6a94\u540d\nval reference = FirebaseStorage.getInstance().reference\nval girlRef = reference.child(\"images\/girl.jpg\")\nval girl2Ref = reference.child(\"images\/girl2.jpg\")\n\n\/\/\u5c07\u5716\u7247\u63db\u6210byteArray\n\/\/\u7b2c\u4e00\u5f35\nval girl = ContextCompat.getDrawable(this, R.drawable.girl)!!.toBitmap()\nval baos = ByteArrayOutputStream()\ngirl.compress(Bitmap.CompressFormat.JPEG, 100, baos)\nval girlData = baos.toByteArray()\n\n\/\/\u7b2c\u4e8c\u5f35\nval baos2 = ByteArrayOutputStream()\nval girl2 = ContextCompat.getDrawable(this, R.drawable.girl2)!!.toBitmap()\ngirl2.compress(Bitmap.CompressFormat.JPEG, 100, baos2)\nval girl2Data = baos2.toByteArray()\n\n\/\/\u4e0a\u50b3\u5230Firebase(\u6709\u5206Bytes,File,Stream),\u4e26\u53d6\u5f97\u5716\u7247\u7db2\u5740\ngirlRef.putBytes(girlData)\n     .addOnSuccessListener {\n         Toast.makeText(this, \"\u4e0a\u50b3\u6210\u529f\", Toast.LENGTH_SHORT).show()\n     }.addOnFailureListener {\n         Toast.makeText(this, \"\u4e0a\u50b3\u5931\u6557\", Toast.LENGTH_SHORT).show()\n     }.continueWithTask {\n         girlRef.downloadUrl\n     }.addOnCompleteListener { task -&gt;\n         if (task.isSuccessful) {\n             val downloadUri = task.result\n         }\n     }\n\ngirl2Ref.putBytes(girl2Data)\n      .addOnSuccessListener {\n          Toast.makeText(this, \"\u4e0a\u50b3\u6210\u529f\", Toast.LENGTH_SHORT).show()\n      }.addOnFailureListener {\n          Toast.makeText(this, \"\u4e0a\u50b3\u5931\u6557\", Toast.LENGTH_SHORT).show()\n      }.continueWithTask {\n          girl2Ref.downloadUrl\n      }.addOnCompleteListener { task -&gt;\n          if (task.isSuccessful) {\n              val downloadUri = task.result\n          }\n      }\n<\/code><\/pre>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage2.png\"><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage2-300x36.png\" alt=\"\" \/><\/a><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage3.png\"><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage3-154x300.png\" alt=\"\" \/><\/a><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage4.png\"><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage4-162x300.png\" alt=\"\" \/><\/a><br \/>\n<a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/firebasestorage.googleapis.com\/v0\/b\/check-in-4ebce.appspot.com\/o\/images%2Fgirl.jpg?alt=media&amp;token=f14825f8-a791-407b-a109-89bff5e5f7d7\" title=\"Girl\" target=\"_blank\" rel=\"noopener\">Girl<\/a><br \/>\n<a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/firebasestorage.googleapis.com\/v0\/b\/check-in-4ebce.appspot.com\/o\/images%2Fgirl2.jpg?alt=media&amp;token=9df39e6f-5420-4044-9b98-189943b0d2ca\" title=\"Girl2\" target=\"_blank\" rel=\"noopener\">Girl2<\/a><\/p>\n<h4>5.\u5229\u7528Glide\u8b80\u53d6\u7db2\u5740\u986f\u793a\u5716\u7247<\/h4>\n<h5>\u5c0e\u5165Glide Library<\/h5>\n<pre><code class=\"language-Gradle line-numbers\">implementation 'com.github.bumptech.glide:glide:4.11.0'\n<\/code><\/pre>\n<h5>\u5728callback\u7db2\u5740\u7684\u5730\u65b9\u4f7f\u7528Glide<\/h5>\n<pre><code class=\"language-Kotlin line-numbers\">continueWithTask {\n    girlRef.downloadUrl\n}.addOnCompleteListener { task -&gt;\n    if (task.isSuccessful) {\n       val downloadUri = task.result\n       Glide.with(this)\n            .load(downloadUri)\n            .into(photo)\n     }\n}\n\ncontinueWithTask {\n    girl2Ref.downloadUrl\n}.addOnCompleteListener { task -&gt;\n     if (task.isSuccessful) {\n         val downloadUri = task.result\n         Glide.with(this)\n              .load(downloadUri)\n              .into(photo1)\n      }\n}\n<\/code><\/pre>\n<h4>6.\u6548\u679c\u5c55\u793a<\/h4>\n<p><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/11\/Storage6.gif\" alt=\"\" \/><\/p>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>1.Firebase\u8207\u5c08\u6848\u9023\u7d50 2.\u9ede\u64caStorage\u5c07library\u8207google-services.jso &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[34],"tags":[13,40,153],"class_list":["post-956","post","type-post","status-publish","format-standard","hentry","category-firebase","tag-android","tag-firebase","tag-storage"],"_links":{"self":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/comments?post=956"}],"version-history":[{"count":3,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/956\/revisions"}],"predecessor-version":[{"id":968,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/956\/revisions\/968"}],"wp:attachment":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/media?parent=956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/categories?post=956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/tags?post=956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}