Firebase学习手记-Storage

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文件夹下。再次编译运行,登录成功,

2、上传图片

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

3、查看

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

时间: 2024-10-12 20:37:56

Firebase学习手记-Storage的相关文章

C#的类型-学习手记

数值型的: byte byte_var;//无符号  0 - -255 sbyte sbyte_var;//有符号  -128 -- 127 short short_var;//有符号 -32768 -- 32767 ushort ushort_var;//无符号 0 -- 65535 int int_var;//有符号  正负21亿 uint uint_var;//无符号 0 -- 4294967295 long long_var;//长整形 正负19位整数 ulong ulong_var;/

maven学习手记 - 1

学习目标 windows下安装maven环境: 使用命令创建maven项目结构: maven项目编译测试打包安装运行: 在maven项目中使用插件. 在windows下安装maven环境 在windows下安装maven环境的步骤如下: 1. 下载maven, 下载地址:http://maven.apache.org/download.cgi 下载"apache-maven-3.2.1-bin.zip" 2. 配置环境变量JAVA_HOME,指向JDK安装路径: 3. 将maven的b

MyBatis学习手记(二)MyBatis缓存机制

MyBatis学习手记二 前:MyBatis官方学习(中文)文档 http://mybatis.github.io/mybatis-3/zh/index.html 一,首先,要使用MyBatis必须使用官方提供的MyBatis的JAR包              链接:https://github.com/mybatis/mybatis-3/releases 这里使用的数据库是MySQL,所以还需要Mysql的驱动包. 二,看MyBatis官方介绍,说MyBatis支持一级缓存,二级缓存.这里才

Magento学习手记(第一天)

<Magento学习手记>中记录着我在做项目过程中每天的学习内容,可能不太成系统,更谈不上严谨的逻辑,希望大家见谅. 我每日记录的学习内容,是我每日学习的真实情况,对于刚上手Magento做项目的人员,可能有一定借鉴意义. 第一天: Magento数据库结构EAV: EAV模型是Zend框架的基础,而Magento项目又是建立在Zend框架的基础上的,所有了解EAV有助于了解Magento的架构原理,在开发Magento相关应用时非常有用. EAV : Entity - Attribute -

Drupal 7 建站学习手记(五):HTML文档流overflow的问题

背景 项目要求网站首页放Views生成的区块,并且要求有更多链接. Views生成的区块默认的更多链接只能选在列表上方和下方 下图是默认在上方的样式图: 为了美观,我将更多链接上移了若干个像素: .more-link { position: absolute; top: 10px; left: 390px; } 效果图: 问题 然而,当我在这个区块外面再套一层区块时, (比如我这里用了QuickTabs模块,实际上是一个嵌套区块) 这个更多链接怎么都不显示了: 探究 第一反应是z-index的问

关于《Linux.NET学习手记(8)》的补充说明

早前的一两天<Linux.NET学习手记(8)>发布了,这一篇主要是讲述OWIN框架与OwinHost之间如何根据OWIN协议进行通信构成一套完整的系统.文中我们还直接学习如何直接操作OWIN字典,从OwinHost中拿数据进行直接使用. 不过文章发布之后,有朋友提示我,文章出了点细节上的问题,我细细度量之后,发现果然出了情况,并且还不是一个无关紧要的小问题,本打算把那篇文章下线,待修改好之后再重新上线,网友“王爷”提醒到,可以为文章专门写上一篇补充文,这样颇有手稿的感觉.考量之下我接受了王爷

Drupal 7 建站学习手记(四):修改Nivo Slider模块的宽高

背景 Nivo Slider模块默认大小是用的height: 100%, width 100%, 但IE7及以下的浏览器是不支持百分比宽高的, 而我的项目目标用户基本都是使用XP系统,项目需求是必须兼容IE7. 因此需要对其CSS修改成绝对像素大小. 问题 修改之后却出现了问题,因为用户上传的图片长宽比是不一样的, 指望用户每次上传的时候先用PS裁剪一下明显不现实, 于是我在CSS里将其拉伸了,这样就不会导致图片只显示一部分. .block-nivo-slider img { width: 45

maven学习手记 - 3

学习目标 maven插件的定义: maven插件的使用.   前言 在手记2中说过maven的阶段命令是通过插件实现的.在手记1中也有简单的示范过插件的用法.但是总觉得有些泛泛了,想在这里再捋一下,以期能更好地掌握maven的插件.   maven插件的定义 还是从插件的定义及创建开始吧. 这里要理解一个词mojo,mojo即Maven Plain Old Java Object,就是一个普通的Java类.每一个Mojo都要实现org.apache.maven.plugin.Mojo接口. 首先

Linux.NET学习手记(8)

上一回合中,我们讲解了Linux.NET面对OWIN需要做出的准备,以及介绍了如何将两个支持OWIN协议的框架:SignalR以及NancyFX以OwinHost的方式部署到Linux.NET当中.这一章,我们将对框架与OwinHost之间怎么通过OWIN协议作出解析. 本章我们将讨论学习: (1).连接两世界之门——“Middleware“ (2).转动大门的钥匙,打开无尽的财宝 (3).适配器?转换插头 相关示例代码,可以点击这里进行下载. 1.充当”门“的”Middleware“ 英文名”