Firebase Storage 官方介绍:

是专为需要存储和呈现用户生成的内容(例如照片或视频)的应用开发者构建。不管网络质量如何,Firebase Storage 都可以为 Firebase 应用提供安全的文件上传与下载。 开发者可以使用它存储图片、音频、视频或其他用户生成的内容。 Firebase Storage 由 Google Cloud Storage 提供支持,后者是一种功能强大、简单和经济高效的对象存储服务。

优酷介绍链接:http://v.youku.com/v_show/id_XMTU4Mzk2OTc2NA==.html?from=s1.8-1-1.2

Firebase学习手记-Storage

1、登录

https://github.com/firebase/quickstart-android clone官方Demo到本机后,在Android Studio里打开其中的storage项目,把build.gradle中依赖的库版本改为本机支持的最新版本,如com.android.support:appcompat-v7:23.0.3修改为com.android.support:appcompat-v7:24.0.0等,直接编译会报错,缺少google-service.json,到Firebase console添加app获取对应json文件复制到app对应文件夹下,重新编译通过。

运行代码到手机,发现点击Sign in会崩溃,经查看Log,应该是缺少授权登录的包,在build.gradle添加compile 'com.google.android.gms:play-services-auth:9.2.0',再次编译运行,依然无法登录,看Log错误信息如下:

07-04 15:59:46.525 386-386/com.google.firebase.quickstart.firebasestorage E/Storage#MainActivity: signInAnonymously:FAILURE

                                                                                                  com.google.firebase.FirebaseNetworkException: A network error (such as timeout, interrupted connection or unreachable host) has occurred.

                                                                                                      at com.google.android.gms.internal.zzafg.zzes(Unknown Source)

                                                                                                      at com.google.android.gms.internal.zzafd$zzg.zza(Unknown Source)

                                                                                                      at com.google.android.gms.internal.zzafo.zzet(Unknown Source)

                                                                                                      at com.google.android.gms.internal.zzafo$zza.onFailure(Unknown Source)

                                                                                                      at com.google.android.gms.internal.zzafj$zza.onTransact(Unknown Source)

                                                                                                      at android.os.Binder.execTransact(Binder.java:446)

07-04 15:59:46.555 386-386/com.google.firebase.quickstart.firebasestorage E/ViewRootImpl: sendUserActionEvent() mView == null

07-04 15:59:55.045 386-1369/com.google.firebase.quickstart.firebasestorage W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.


这里最关键的是signInAnonymously:FAILURE,在Firebase auth中支持6种登录方式分别是Email/password,google,twitter,facebook,github,Anonymous,在这个demo里使用的就是最后一种Anonymous方式,而要支持这些登录的话,需要在Firebase控制台中设置对应项为Enable。进入控制台找到Auth项中的SIGN-IN METHOD项,将Anonymous设置为enable,save 后重新下载google-service.json(这步很重要,如果没有更换那么设置是没有效果的)复制到app文件夹下。再次编译运行,登录成功,j_0026.gif

2、上传图片

点击Upload,用手机拍照后保存图片返回,自动上传成功。

3、查看

进入Firebase控制台点击Storage项,会看到刚拍摄的照片已经保存在云端,点击任意图片,在右侧详情栏可以看到图片信息以及保存在Google云端的位置,下载链接等。