Firebase の環境とプロジェクトの作成方法 9.6.1 を使用する場合 エミュレータ : SDK Manager で最新に更新 実機 : Google Play 開発者サービスを最新に更新 Firebase ドキュメント : メモリにダウンロードするメモリへのダウンロードは、画像の大きさを考慮しておれば、他は特別な内容はありません。ストレージのルールは allow read; にしておいて、ログインなしでテストしています。 ※ 取得した Byte の配列から Bitmap の作成は BitmapFactory.decodeByteArray で行っています。 MainActivity
public class MainActivity extends AppCompatActivity { static long MAX_SIZE_BYTE = 1024 * 100; // ダウンロード用 private FirebaseStorage storage; private StorageReference storageRef; private StorageReference imageRef; private ImageView imageView; private ProgressDialog progress; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // ▼ テスト用のルール // service firebase.storage { // match /b/freebase-654b7.appspot.com/o { // match /{allPaths=**} { // allow read; // allow write: if true; // } // } // } // ダウンロードするファイル storage = FirebaseStorage.getInstance(); storageRef = storage.getReferenceFromUrl("gs://freebase-654b7.appspot.com/"); imageRef = storageRef.child("sworc2.png"); // 表示する場所 imageView = (ImageView) MainActivity.this.findViewById(R.id.imageView); // ダウンロード中のダイアログ progress = new ProgressDialog(MainActivity.this); // ************************************* // 表示1 ( メモリに取得 : bytes[] ) // ************************************* Button byteButton = (Button) MainActivity.this.findViewById(R.id.byteButton); byteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // ダウンロード中の表示 progress.setProgressStyle(ProgressDialog.STYLE_SPINNER); progress.setMessage("画像をダウンロードしています"); progress.show(); // ダウンロード imageRef.getBytes(MainActivity.MAX_SIZE_BYTE) .addOnSuccessListener(new OnSuccessListener<byte[]>() { @Override public void onSuccess(byte[] bytes) { Log.i("lightbox","データ取得に成功しました"); Log.i("lightbox", String.format("%d",bytes.length)); if (bytes != null) { Bitmap image = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); imageView.setImageBitmap(image); } // ダウンロード中の表示解除 progress.dismiss(); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // ***************************************** // ルールを allow read: if false; にすると失敗します // => User does not have permission to access this object. // ファイルが存在しない場合 // => Object does not exist at location. // ***************************************** Log.i("lightbox","データ取得に失敗しました"); Log.i("lightbox",e.getMessage()); e.printStackTrace(); // ダウンロード中の表示解除 progress.dismiss(); // メッセージ表示 Toast.makeText(MainActivity.this,"ダウンロードに失敗しました",Toast.LENGTH_LONG).show(); } }); } }); } }
build.gradle(Project)
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.1' classpath 'com.google.gms:google-services:3.0.0' } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
build.gradle(Module: app)
apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "23.0.3" defaultConfig { applicationId "lightbox.sep.fire1" minSdkVersion 19 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.google.firebase:firebase-core:9.6.1' compile 'com.google.firebase:firebase-storage:9.6.1' compile 'com.google.firebase:firebase-auth:9.6.1' } apply plugin: 'com.google.gms.google-services'
※ AndroidManifest.xml には、android.permission.INTERNET を設定
|
【2016 Android Studioの最新記事】
- Android Studio で Twitter4J で ListView に検索結果を表示する
- Android Studio で Twitter4J で画像付きツイート
- 内部ストレージを起点とした画像データの処理 / Android
- カメラを起点とした画像データの処理 / Android
- バグ : Android Studio 2.2.2 で、spinnerMode を dialog に設定すると app:spinnerMode となってしまいます
- ListView + カスタム ArrayAdapter + ViewSwitcher + Firebase API + Data Binding : 更新処理 / Android Studio
- Firebase storage に画像をアップロードする。1) ギャラリーから、2) 実行中の画面 / Android
- Android : 画像関連のテスト用カメラアプリ
- Firebase storage の画像を ファイルとしてダウンロードして ギャラリーに保存する( ImageView にも表示する ) / Android
- Firebase storage の画像の URL を取得して、通常と同様に Stream でダウンロードして ImageView に表示する / Android
- Android : Firebase の データを REST API の PUT コマンドで更新する
- Firebase API + Android Studio : Database のデータを Java に取得する方法は3通りあります。(orderByChild 使う場合は、getChildren ..
- Android : Data Binding + Firebase API で ListView にデータを表示する
- Firebase API + Android Studio : Database 処理の基本設定
- Android Studio 2.2 で新規プロジェクトを作成すると『Could not reserve enough space for 1572864KB object heap』というエラーが出..
- Firebase API + Android Studio : Database にデータを保存は単純で、DatabaseReference の setValue メソッドを使用します