Tag: firebase云消息传递

使用Swift的iOS实用Firebase

该课程的原价为199美元,但在有限的时间内,您只需10.99美元即可获得完整的课程。 优惠券数量有限,请不要等待太久🙂使用下面的优惠券链接: https://www.udemy.com/practical-firebase-for-ios-using-swift/?couponCode=ILOVEFIREBASE 大家好, 在过去的几个月中,我一直在努力学习新课程“ 使用Swift的iOS实用Firebase ”。 我很高兴地宣布,该课程现已出版,可以出售。 我一直认为,学习某件事的最好方法就是去做。 适用于iOS的实用Firebase使用Swift反映了我边做边学的经验。 在本课程中,我们将创建多个实际应用程序,这些应用程序将使我们看到Firebase平台的强大功能。 让我们看一下将在本课程中构建的不同应用程序: 高水位 High Waters应用程序离我的心很近,因为它影响了我当地的休斯顿社区。 该应用程序的目的是通知用户水灾地区。 用户可以在地图上放置一个指示被淹区域的图钉。 任何人都可以看到该图钉,而无需刷新应用程序。 销的位置将保留在Firebase数据库中。 杂货应用 Grocery App是一款偶像应用程序,用于了解Firebase中的父子关系。 该应用程序还向用户介绍了Firebase身份验证系统,该系统允许用户使用自己的自定义凭据进行注册和登录。 用户能够创建新的购物清单,然后将项目添加到购物清单。 根据用户的凭据,每个购物清单与杂货一起保留。 WhatsUp聊天 诸如WhatsApp,Facebook Messenger,微信,Viber等聊天应用程序已成为我们社会不可或缺的一部分。 在本节中,我们将构建一个名为“ WhatsUp”的完整聊天应用程序。 WhatsUp聊天应用程序将允许用户向聊天室中的其他用户发送文本消息和照片。 本节将向您介绍JSQMessagesViewController,它使创建类似聊天的界面变得很容易。 学生还将学习如何使用Firebase存储将照片上传到Firebase平台。 我对本课程感到非常兴奋,希望您会喜欢学习并将Firebase与iOS应用程序集成。 该课程的原价为199美元,但在有限的时间内,您只需10.99美元即可获得完整的课程。 优惠券数量有限,请不要等待太久🙂使用下面的优惠券链接: https://www.udemy.com/practical-firebase-for-ios-using-swift/?couponCode=ILOVEFIREBASE 看完课程后,请给它评分并复习。 您的评分非常重要,它有助于添加更多内容并支付账单😉 谢谢, Azam

如何使用Firebase Cloud Messaging自动执行iOS推送通知

基本上,推送通知是一种警报,它会在智能手机上弹出,提示您执行一些您要采取的行动,它使您可以在正确的时间和正确的位置直接与应用程序用户通话。 推送通知是一种方法,如果您有已经安装了您的应用程序的用户已经很长时间没有使用过,那么它就是一种与他们联系的方式。 这也是一种仅向人们发送通知的方法,无论他们是否打开了您的应用程序,以及针对使用它来作为警报的客户端和用于通知其员工或某些事情的东西的人,这是我们没有的事情在我们自己的应用中使用,但我们已将其用于许多客户端应用。 推送通知如何工作? 当您设置推送通知时,基本上,就像您要为iphone设置的苹果一样,您必须为其赋予推送通知权利,还必须设置证书,并且必须对Firebase Cloud做同样的事情Messenger或FCM网络。 因此,您可以将FCM或APN作为苹果推送通知服务。 首先,打开您的应用程序,如果在其中注册了该应用程序,它将自动转到那些服务并进行注册,然后系统将询问用户“您是否希望间谍能够发送消息”,然后说“是”或“否”,它会从他们那里收回令牌。 现在,对于我们已经完成的许多应用程序,我们必须保留该通知,因为它本身并没有真正帮助任何人。 您需要有一种方法可以将这些消息发送给他们,而且很多次意味着您拥有自己的服务器。 过去曾经做过的一些应用程序,例如,他们打开了应用程序,用户打开了应用程序,它转到了APN,或者FCM网络和窗口也有自己的。 它转到这些令牌,并与该令牌一起返回,然后您可以获取该令牌,然后可以获取该令牌并等待,直到他们登录或注册,一旦他们这样做,您就可以将该用户与该推送关联通知,或者您不在乎用户是谁,您只是在向所有人广播所有内容或根据位置或在询问其详细信息之前可以执行的任何操作。 因此,您可以将令牌与登录详细信息一起使用,然后将其放到服务器上,然后,您可以让自己的服务器将通知发送到APNS或FCM,然后处理将其发送到服务器。用户。 这种流程的进行和变得有点复杂。 如果您有一个跨平台应用程序(例如说可以在android和iPhone上使用),则必须考虑他们实际使用的手机。 例如: 每次用户登录时,我们都会接收最后的推送通知内容,并且将覆盖数据库中的单个字段,我们必须说它是android还是iPhone。 因此,对于拥有平板电脑和手机的人来说,如果先注册手机然后再注册平板电脑,则手机将不再获得推送通知并将任何多个设备与该用户相关联。 现在有很多服务可以为您解决。 有火力气场,空中推力,亚马逊有一个名为SNS的服务-简单通知服务,它们为您消除了所有复杂性,管理谁属于什么。 Microsoft Azure有一个称为“通知中心”的窗口。 我们使用了很多东西,它们似乎有点过大了,因为您实际上并不需要它们,并且很多时候它们会收费,但是通常确实很低。 您可以使用多个聊天应用程序,因此,假设莫娜正在通话中,克里斯想将聊天发送给还安装了该应用程序的朋友,克里斯可以选择他,然后将推送通知发送到服务器,服务器将看到他的朋友,并会查找朋友的令牌ID,查找发送到FCM的苹果推送通知的消息,然后将其发送回他的手机。 在营销方面,人们在营销方面使用了推送通知,因为从理论上讲,人们已经考虑过这样做,因此我们可以使用分析跟踪该应用的使用频率,并且可以说:对于使用该应用的每个用户该应用程序,谁已经卸载了该应用程序但上个月没有使用过该应用程序,也许我们可以向他们发送推送通知,只是说一些相关的内容。 如何在您的应用程序中配置推送通知? 在开始之前,您需要进行一些设置 Xcode 9.2或更高版本 对于云消息传递: —物理iOS设备 — Apple Developer帐户的Apple Push Notification身份验证密钥 —在Xcode中,在应用程序→功能中启用推送通知 如何将Firebase添加到您的应用程序? 转到Firebase控制台 单击添加项目,然后选择或输入项目名称。 —如果您已有与您的应用相关联的Google项目,请从“项目名称”下拉菜单中选择该项目。 —如果您没有现有的Google项目,请输入新的项目名称。 按照其余的设置步骤,然后单击“创建项目”。 现在您有了一个项目,可以将您的iOS应用添加到其中: 单击“ 将Firebase添加到您的iOS应用”,然后按照设置步骤进行操作。 如果您要导入现有的Google项目,则该过程可能会自动发生,您只需下载配置文件即可。 出现提示时,输入应用程序的捆绑软件ID。 输入您的应用程序正在使用的捆绑包ID非常重要; 仅当您将应用程序添加到Firebase项目中时才能设置。 在此过程中,您将下载GoogleService-Info.plist文件 。 您可以随时再次下载此文件。 在游览项目的根目录中添加GoogleService-Info.plist 。 […]

Swifty Firebase API @ Ka-ching —第2部分

更新,2018年10月14日: 自撰写本文以来,这些博客文章中描述的概念已被分为两个开源框架,可以在这里找到: ka-ching-as / FireSwift-Database Firebase实时数据库的扩展,可以使用“ Codable” Swift类型。 … github.com ka-ching-as / RxFireSwift-Database Firebase实时数据库的RxSwift扩展-ka-ching-as / RxFireSwift-Database github.com 这篇文章是3部分系列文章的继续,该系列文章首先为Firebase API添加了Codable支持: 在这篇文章中,我们将讨论一个非常有趣且功能强大的主题,它受objc.io Swift Talk#71:带有幻影类型的类型安全文件路径的启发。 在Swift Talk中,Brandon Kase和Florian Kugler讨论了“幻影类型”,简而言之,这些类型永远不会实例化,而只会用作通用约束。 这些是将强类型添加到通常不是强类型的API的强大工具,就像Firebase RTDB Reference使用的路径一样。 请,请去观看关于objc.io的精彩演讲! 在这篇文章中,我们将混合Phantom Types和实际的Codable模型类型,以创建一个真正强大的API。 可以在第一篇博客文章中介绍的github仓库的typesafe_paths分支上找到该文章的示例代码: ka-ching-as / SwiftyFirebase SwiftyFirebase – Swift中Firebase API的简单包装 github.com 请注意,本文涉及Firebase,但是所描述的技术可以用于具有“字符串”定义的数据层次结构的任何类型的API。 我们将介绍一种Path类型,该类型基本上包装了一系列路径组件,但在此过程中增加了类型安全性。

Firestoreで作るオフライン动作対応のiOSアプリ

2017年10月3日に,GoogleからFirebase实时数据库の后継にあたるCloud Firestoreが発表されました。 Cloud Firestoreのご绍介:アプリ用の新しいドキュメントデータベース baseの记事はプロダクトマネージャー,Alex Dufetel Fire Firebase博客の记事“ Cloud Firestore简介:我们针对…的新文档数据库” developer-jp.googleblog.com Cloud Firestore | 火力基地 使用我们灵活的,可扩展的NoSQL云数据库来存储和同步数据,以进行客户端和服务器端开发。 firebase.google.com 今,実际に开発中の未リリースのiOSアプリに导入していて色々知见が贮がきていてのですが,本记事では特にFirestoreのオフライン动作サポート周りについて焦点を当てていきます。 2017/12/01时点で,Firestoreはまだベータ版なのでプロダクション利用は慎重に検讨することをおすすめします。 初步き:Firestoreをざっと绍介 本主题の前にFirestoreをざっと绍介します。GoogleDevelopersGoogleログによると次のように绍介されています。 世界规模でアプリデータを简タを格纳して同时できるようにデザインされており,ベータ版として利用できるようになりました。 Firebaseサービス配下には元々似たものとして实时数据库があります(というより,Googleに2014年に买收される前はこれこそがFirebaseでした)。数据库に比べて,主に次の点で优れています。 保存できるデータ型が増えた クエリ・ソートの强化 スケーラビリティが青天井に 自动マルチリージョン わりにクション构造がネストしていても重くならない(代わりに适宜明示的に取得处理が必要) コストは概ね安い(ただし,料金体系ががらりと変わっているため使い方次第で逆転もあり得る) タータ构造が,实时数据库ではJSONツリーでしたが,Firestoreではドキュメ指向指向データベース(Datastoreをラップしたもの)に変わったことが大きく影响しています。で强化・再设计した感じで,とても良い买收后の流れだったと感心しています(・‿・`) (Facebookに买收されたあと消灭したParseとは対照的。) 次の记事・资料を见るとイメージが涌くかと思います。 Cloud Firestoreは进化したFirebase实时数据库— Qiita Firebase RTDB + GCP数据存储= Firestoreについて第一印象— Qiita Firebaseの新しいデータベース— Slideshare 实时数据库はちょくちょく辛いところがあったようですが,Firestoreは痒いところに届くようになって,通常のモバイルアプリの多くのユースケースは何とかなると感じています(ただしデータ构造设计は重要)。 ,より包括的・実践的な记事は后日こちらに书きました。 Cloud Firestoreの勘所所ート1 Cloud Firestoreの概要 medium.com Cloud Firestoreで,従来のローカルデータベースタベ现していたものと同等のオフライン动作サポート可能か? して本题の,Firestoreで作るオフライン动作対応のiOSアプリについてです。 仆が今开発中のアプリでは,そういったお驯染みのローカルデータベースを使わずに,データ周りはFirestoreにすべて頼るようにしました。この际,最も気になったのは,本当にFirestoreのオフライン动作サポートで,従来のローカルルータベスと同等のユーザー体験を担保できるかという点でした。 オフライン动作が具体的に指すもの […]

Integrasi Firebase dengan iOS Swift melalui Cocoapods依赖项

嗨,敏捷开发人员! 卡里伊尼赛亚阿坎族与孟加拉人一起共享火力发电厂 。 Ngomong-ngomong ada yang tau apa itu cocoapods ?? Cocoapods adalah sebuah 主管经理 Yang membantu开发人员mengakses berbagai macam 库 yang dibutuhkan。 Selanjutnya kita coba安装cocoapods terlebih dahulu! Langkah pertama,布卡终端terlebih dahulu。 Selanjutnya,ketik命令berikut ini: sudo gem install cocoapods Inilah tampilan setelah mengeksekusi命令diatas dan tahap untuk menginstall cocoapods telah selesai。 Bagi yang penasaran dengan konfigurasi cocoapods lebih lanjut […]

使用Firebase Crashlytics修复崩溃

换一种说法: 在装有iOS 11的任何类型的iPhone上,前台都会发生崩溃 这是我们的出发点。 解决崩溃 在Firebase Crashlytics引入面包屑之前,您可能会与支持团队聊天并向他们询问以下问题: 崩溃是否可以重现? 复制路径总是一样吗? 崩溃到底发生在哪里? 尤其是当崩溃导致堆栈跟踪时,几乎没有任何结果: 现在,有了新的面包屑,我们只需打开“ Logs页面,就可以在崩溃发生之前看到用户的面包屑。 它告诉我们用户在启动后立即收到了转移(存储桶) 最终接收失败: 这比堆栈跟踪给我们的要多得多! 复制路径是否一致? 通过在会话之间导航并比较面包屑,我们可以轻松地比较会话并定义每个用户的复制路径是否相同。 这将使崩溃的范围进一步缩小,并使我们有可能更快地重现崩溃。 使用自定义参数 面包屑的妙处在于它们可以为您提供更多信息。 我们可以看到接收到的传输是一个简短的URL。 接收到的传输的类型是不带密码的移动传输: 结论 使用所有这些信息可以帮助我们更快地解决崩溃问题。 事实证明,我们以错误的方式解雇了一个视图控制器。 有时,我们甚至无法通过面包屑来解决崩溃问题。 这是我们团队的游戏规则改变者,使我们更接近拥有100%无崩溃用户的梦想。 更快地解决崩溃问题也意味着需要更多时间来开发功能。 解决崩溃更快 解决最难的崩溃 腾出更多时间来开发功能,而不是解决崩溃问题。

iOS:Animate TableView更新

重新加载数据的更好方法 坦白地说: tableView.reloadData仅存在两个原因: 加载初始数据 激怒你的内部完美主义者 大多数数据驱动的应用程序都使用服务器来获取新数据,然后在表视图中显示此数据。 重新加载数据时,集合中的某些项目可能不会更改,或者集合可能仅添加/删除了一些项目,而不会影响所有其他项目。 在tableView上调用.reloadData()将立即更新tableView ,滚动位置将不明确。 不是最佳的用户体验,对不对? 在大多数情况下,您都希望通过漂亮的动画流畅地更新适当的节和行,而没有任何轻拂,跳跃或滚动。

Firebase身份验证

您好iOS工程师, 这是学习Firebase身份验证的好日子。 在我的第一篇文章中,我简要说明了身份验证及其在应用程序中的作用。 今天,我们将找到有关身份验证以及如何在应用程序中使用身份验证的更多信息。 什么是认证? 身份验证是授予用户访问操作系统的过程。 为了进行访问,用户输入其凭据,然后应用程序将该信息与数据库数据进行比较。 如果用户在数据库中,则他们可以使用该应用程序;否则,他们将被拒绝访问。 我们现在使用大量的应用程序,大多数(如果不是全部的话)都具有身份验证过程。 我希望您尝试一下,看看有多少应用程序要求输入用户名和密码。 该过程就是身份验证。 我们为什么要关心身份验证? 我们应该关心身份验证,因为它使我们作为开发人员和客户受益。 让我们考虑一下客户如何使用身份验证方法。 1.用户为应用程序提供新的用户名和密码。 2.该应用程序仅在数据库中为该用户创建了一个唯一的配置文件。 3.用户只能访问其数据。 这只是用户如何使用身份验证的基本概述。 大多数情况下,每个应用程序都像上面的列表一样工作。 用户可能会以不同的方式与某些应用进行交互,但这只是基本概述。 对于我们的开发人员来说,身份验证也是有益的。 让我们考虑一下为什么要使用身份验证。 1.身份验证有助于提高安全性,因为用户可以将数据保存到他们只能访问的数据库中。 2.当用户登录到应用程序时,我们将为该用户创建一个结构化的数据库。 3.因为我们可以将用户与数据相关联,所以管理应用程序的所有数据更加容易。 例如,假设我们有一个应用程序将图片存储在数据库中。 如果没有身份验证方法,我们将不知道哪个用户提供了上传图片。 拥有这些信息很重要,因为如果用户想查看他们上传的图片,我们将不知道,因为数据没有连接到任何用户。 通过身份验证,我们可以在该数据库中为该人创建一个唯一的ID。 用户每次上传任何图片时,都会将上传内容与该人的唯一ID相关联。 Firebase身份验证 我们了解身份验证的基础知识,因此现在我们可以讨论Firebase身份验证。 使用Firebase,我们不必从头开始创建我们自己的身份验证库。 我们可以使用Firebase形成的基础架构为我们的用户带来出色的用户体验。 我们可以在Firebase中使用三种身份验证方法。 三种方法是电子邮件和密码,服务和匿名。 1.电子邮件和密码是我们几乎每天使用的每个应用程序中看到的内容。 在使用大多数应用之前,要求您提供用户名和密码。 2.服务已经存在了一段时间。 您正在使用的应用程序将询问您是否要使用Facebook,Google,Twitter等进行登录。服务允许用户选择是否要使用其设备上已在使用的服务登录。 它使建立帐户的过程变得快速而直接。 3.匿名身份验证为用户提供了一个临时帐户。 如果用户稍后注册,他们仍然可以访问其数据。 哪些应用程序应具有身份验证? 我相信所有应用都将受益于身份验证。 就像我之前说过的,这是组织数据的绝佳方法。 您不想做的一件事就是无法保存您的数据。 身份验证是应用程序为用户创建初始数据的起点。 除非您有另一种获取数据身份验证的方法,否则它将是完成这项工作的最佳解决方案。 为iOS设置身份验证难吗? 使用Firebase并不难配置身份验证。 首先,您必须设置环境以将Firebase集成到您的应用程序中。 我确实创建了一个教程,向您展示如何在应用程序上设置Firebase。 您可以在此处找到视频。 在接下来的几天里,我还将创建一个有关如何在您的应用程序中设置身份验证的教程。 […]

Swifty Firebase API @ Ka-ching —第3部分

更新,2018年10月14日: 自撰写本文以来,这些博客文章中描述的概念已被分为两个开源框架,可以在这里找到: ka-ching-as / FireSwift-Database Firebase实时数据库的扩展,可以使用“ Codable” Swift类型。 … github.com ka-ching-as / RxFireSwift-Database Firebase实时数据库的RxSwift扩展– ka-ching-as / RxFireSwift-Database github.com 这篇文章是3(或4或5?)部分系列的延续。 在第一篇文章中,我们向Firebase API添加了Codable支持: 在第二篇文章中,我们使用Phantom Types添加了Type Safe路径,这为我们提供了强类型的路径和出色的API人体工程学: 在本文中,我们将添加对RxSwift的支持。 如果您想了解有关RxSwift的更多信息,请参考官方github回购,其中提供了很好的用例示例。 我在这里要表达的唯一的进一步动机是,Firebase实时数据库和Rx的思维方式存在巨大的重叠:RTDB允许用户订阅随时间变化的数据。 Rx的主要目的之一就是提供随数据随时间变化建模的原语。 如我所见,Rx是使用Firebase RTDB API的理想方式。 例如,使用本机API观察Firebase中某个位置的更改,要求用户跟踪订阅时返回的订阅令牌。 在Rx中,我们可以将此令牌包装在订阅中,以便在处理订阅时删除Firebase观察器。 但是,当我们开始编码时,所有这些可能更容易掌握! 添加一个Rx扩展 为了方便起见,让我们开始向DatabaseQuery添加Rx扩展(这是DatabaseQuery的超类型)。 可以在RxSwift存储库中找到添加Rx扩展的模式,例如RxCocoa扩展。 它看起来如下:

在iOS应用中使用不同的Firebase环境

近年来, Firebase变得非常流行。 您可能知道,Firebase是一个后端即服务 ,这意味着它以最小的配置在后端提供了多个服务以使其正常运行。 它现在属于 Google ,它于2014年购买了它,因此它正在迅速发展和发展,其文档以及技术支持都非常出色。 Firebase提供了各种各样的产品 :分析,实时无SQL数据库,音频,照片和视频存储,推送通知,功能(无服务器代码),动态链接……您可以在官方文档中查看整个列表。 不同的环境 如果您正在阅读本文,则可能已决定对iOS应用程序使用某些Firebase服务。 应用程序开发中的常见场景是拥有不同的环境 ,例如调试 ,质量保证, 测试版 , 生产 … 当您的应用处于开发模式时,或在质量保证部门进行测试时,某些“ 数据污染 ”可能会到达Firebase服务器。 我将对此进行简要说明。 假设您的应用程序将使用Firebase Analytics和Firebase Realtime Database 。 质量检查部门的测试人员已收到您的二进制文件,并将尝试使用它。 他们将在应用程序中导航,点击按钮,在数据库中插入数据……您正在向Firebase发送“ 虚假信息 ”,并且您不想将这些污染数据与真实用户信息混合在一起。 换句话说,您可能会将测试人员的事件 (您仅希望用于测试目的)与最终用户的信息(您希望为应用程序的正确行为所混合)混合在一起 。 该解决方案包括在您的应用程序中具有不同的环境 ,以使每个应用程序中的信息隔离,并且不会与其他应用程序混合。 在xcode中设置Firebase环境 我们将从头开始了解如何为不同的Firebase环境配置xcode。 我没有看到太多有关此主题的文档,所以我决定解释如何做。 首先创建一个新的xcode项目并设置两个环境: debug和release 。 如果您需要帮助,可以参考本文。 如果您懒于创建和配置项目,也可以从此处下载入门项目。 您必须完成以下步骤: 在Firebase控制台中,创建两个单独的项目(不是应用程序):一个用于调试环境,另一个用于发行版 。 适当地命名它们,以免混淆它们。 2.为每个项目创建一个iOS应用。 请小心输入您在xcode中分配给每个项目的包ID 。 3.下载Firebase为每个项目生成的GoogleService-Info.plist 。 现在,将它们保存在硬盘驱动器上的其他位置。 与其重命名debug-plist文件,不如将文件名保留为默认值。 […]