欢迎回来
我们成功地从图库中获取了图像, 并在图像视图中显示了缩略图｡
现在, 我们需要允许用户输入标题和想法, 并将此帖子上传到期刊集合, 并将此图像上传到Firebase存储｡
所以我们有两件事要做｡
我们需要上传标题想法, 用户ID, 发布日期到Firebase Firestore和图像到Firebase存储,
并获取此图像的引用并将其发布到Firebase Firestore数据库｡
在我们讨论保存日志方法之前, 我应该在这里提到一个非常重要的概念｡
在处理Firebase身份验证时, 您总是需要在Onstart方法中获取此信息｡
因此, Firebase auth dot获取当前用户并将其指定给用户, 然后将其初始化回保存日志｡
我需要从编辑文本中获取标题和思想文本, 所以这很简单｡
我将使用字符串标题等于标题编辑文本点得到文本点到字符串点修剪｡
好吧, 我从这两个编辑文本, 帖子标题和想法中得到它们｡
然后我需要显示进度条｡
所以设置可见性视图点可见, 因为我正在上传｡
所以我需要显示进度条｡
我会检查标题和想法是否为空｡
然后我们需要继续并上传帖子｡
所以如果不是空的文本utils｡
我们在之前的视频中讨论过文本实用程序｡
我们需要检查你的图像是否是我, 我将在这里创建｡
我们上去吧
你就是我｡
我将其命名为图像Uri｡
在活动结果中｡
当显示图像时, 我们需要获取图像Uri｡
并将其赋值给结果｡
那我就在这里继续
图像I不等于null标题思想和图像I不为空, 所以继续｡
为了保存这篇文章, 我们需要创建一个存储引用文件路径｡
我将从使用最终存储开始｡
我希望你们能关注我, 因为我现在使用的是Firebase文件路径中的存储服务,
等于存储引用点子｡
这里我需要指定文件夹｡
我需要在Firebase存储中创建图像的保存路径, 如下所示｡
文件夹日志图像和图像的名称｡
在这里, 我们的图像点PNG的孩子, 这是我需要它的文件夹｡
期刊图像点子｡
在这里我需要指定图像的名称和时间｡
我现在就加上时间戳
我把它改成我的图片｡
时间戳例如为2000 2310｡
例如, 如果现在是零714, 就像这样｡
这是时间戳, 这是一个常量或图像的名称｡
所以我的形象强调｡
所以我在这里加下划线｡
如何获取时间戳
这很简单, 我将使用timestamp, 它是Firebase点中包含的一个类｡
现在的方法点得秒, 这是肺｡
这里我把我的图像作为一个常量添加到时间戳中｡
因此, 每个图像将被命名为this my image和它上传的时间戳｡
现在我们需要上传图像｡
所以文件路径不要把文件放在这里｡
所以我得到了这个引用, 并使用put file方法来上传你或我的图像｡
我将添加Onsuccess侦听器, 以创建一个journal对象并将其上传到存储文件路径dot
get download url dot add Onsuccess｡
文件路径是一个存储引用对象, 表示对Firebase Storage中文件的引用｡
通常我在这里使用文件路径｡
获取下载URL｡
这是它在存储引用文件路径上调用的方法｡
在这种情况下, 请求文件的下载URL｡
下载URL是可公开访问的URL, 允许您下载文件和onsuccess侦听器｡
这是一个异步回调, 您可以将其附加到获取下载URL方法｡
它指定当成功获取下载URL时应该发生什么｡
这里我需要传递匿名Onsuccess侦听器, 我们再次覆盖Onsuccess｡
这里我们有Uri｡
因此, 我需要获取一个字符串image url, 它等于Uri这个参数, 并使用string方法将其转换为图像URL,
因为我需要将其上传到Firebase Firestore数据库｡
现在让我们创建一个模态类journal对象, 我从journal equals开始到new journal journal
dot set title to title它从编辑文本journal dot set floats到thoughts它从文本journal
dot set image url到image URL, journal dot time, 添加了新的时间戳, 我会得到新的日期, journal点设置用户名,
从当前用户名和journal点设置用户ID到当前用户ID｡
在成功创建此日记对象并将其发布到对集合中日记的引用之后,
我们需要再次移动到另一个活动或日记列表活动｡
这里我需要用收藏参考点添加日志｡
我正在上传它, 当用户成功上传时, 我们需要将他定向到日志列表活动｡
所以我需要｡
在这里传递成功的听众｡
你可以看到这个文件的参考｡
并且我需要隐藏进度条设置可见性视图点不可见.
我需要把这个意图称为I等于新的意图｡
添加日志活动点此｡
我需要指引他去日记清单活动｡
不要错过冷加工方法｡
此外, 您可以添加失败侦听器, 如果此上传失败, 我需要显示一个toast消息,
告诉用户它是失败的, 并打印E, 这是错误点获取消息E是一个例外｡
好的, 现在我还可以在这里添加另一个添加失败侦听器, 新的失败侦听器, 我需要显示一个toast消息,
告诉用户它失败了, 我需要隐藏进度条｡
太隐形了｡
这里我们需要显示失败｡
好吧
如果我们向上滚动, 我们可以看到这是如果我们向下滚动｡
这是if条件的结束标记｡
在这里我需要使用else｡
而进度条中的点设置可见性视图中的点不可见.
因为当这些文本工具为空时, 我们不需要显示这个进度条｡