Tag: firebase云消息传递

使用iOS应用程序抓取Firebase服务

那是晴天的时候之一,那时我回到家,终于有时间从我的购物清单中计划好美食应用程序。 不管是好是坏,我不仅需要进行应用程序设计,而且: 身份验证。 我可以在其中保存和检索内容(数据,信息,图像)的数据库。 可搜索的食品API。 大概,我需要一个认真的人加入我自己的小团队。 或者,我可以一个人做吗? 或多或少😃。 简短答案-是的! 因为我一方面找到了价格合理的可搜索食物API,另一方面又找到了Firebase 。 长答案? 继续阅读! Firebase是面向移动开发人员的统一平台(是的,适用于Android和iOS),提供了许多很棒的功能,其中包括实时数据库,崩溃报告,分析,身份验证等。最好在以下位置查看整个列表:他们的官方网站。 我写的最后一篇文章包括一个项目 名为Unicorner,旨在接收带有Unicorner用户看到并拍照的独角兽图像的远程通知。 这次,该项目将要拍摄独角兽的图片并将其上传到数据库。 然后,来自数据库的数据将被馈送到一个列表,在该列表中可以看到上传的图片和信息。 通知不会发送,但我们可以在另一篇文章中进行处理,对吗? 无论如何,这是计划的文章工作流程: Firebase帐户注册和iOS应用程序配置。 在Xcode中设置Demo项目。 编写一些代码以与Firebase实时数据库和存储进行通信。 实际上,这很简单。 首先转到此链接,然后单击屏幕右上方的“ 登录”按钮。 可以使用gmail帐户( 大多数人都拥有一个 )登录,也可以按照注册步骤创建新帐户来登录。 完成后,再次点击右上方的转到控制台 , 进入 Firebase控制台。 这是可见的: 我的Firebase控制台中已经有一个正在处理的应用程序项目。 要添加另一个,只需点击添加项目,然后看到此模式: 我为我的项目选择的名称是UnicornUploader和 我选择的地区是美国。 根据需要选择,然后单击创建项目 。 在创建项目时稍等一下,瞧: 点击“ 继续”后 ,您将进入“ 项目概述”页面: 在这里可以访问Firebase提供的所有功能。 确实,在本文中,我将仅关注三个方面-身份验证,数据库和存储。 您确保在时间允许的情况下将它们全部检查出来。 将Firebase添加到iOS应用 是时候选择将Firebase添加到您的iOS 应用程序中,以将Firebase添加到我的iOS应用程序中 : 我已经输入了演示项目的iOS Bundle ID,对您的演示文稿也做了同样的操作,然后点击Register […]

使用Firebase Cloud功能实施DeviceCheck

(这不是教程) DeviceCheck是iOS 11引入的,它使开发人员可以检查用户是否处于四个自定义状态之一。 所有状态均由开发人员决定。 引入DeviceCheck是为了允许开发人员在所有开发人员的应用程序中正确识别和分类其用户,而无论用户是否删除了他们的任何应用程序。 有许多用途,但通常与货币化和社交有关。 如果您提供应用内新用户交易并希望确保用户无法删除,重新下载和再次访问该交易,则DeviceCheck是您的解决方案。 如果您提供社交应用程序,并且想要确保违反您条款的用户无法长时间访问您的服务(直到他们获得新手机),DeviceCheck是您的解决方案。 在DeviceCheck之前甚至今天,开发人员将在Apple的视野中实施一般或高度可斥责的识别用户的方法,其中最大的例子是Uber直到2017年左右。 一般的解决方案之一是为每个用户使用唯一的,但不是永久的,有时甚至是不存在的广告标识符。 另外,一些开发人员会将信息存储在钥匙串中,但是一旦删除该应用程序,该信息就会被删除。 高度谴责实际上涉及访问每部电话的唯一IMEI /序列。 DeviceCheck已成为各方的完美答案。 它为开发人员提供了永久性,但确保了隐私,使Apple和用户都感到高兴。 开发人员在实施它时遇到的问题。 DeviceCheck要求与Apple的服务器通信,这意味着您必须拥有一台服务器才能完全实现它。 对于在大型公司以外工作的开发人员,花时间了解实施情况可能没有吸引力。 实际上,实施可以非常简单,并且无服务器。 对于我自己的项目(社交),我之所以坚持不懈,是因为用户的质量对于应用程序的成功是不可商议的。 所需的只是Firebase Cloud Functions,Firebase数据库和Node.js。 实施DeviceCheck所花费的大量时间涉及熟悉JavaScript,请求承诺和Apple的错误代码。 因为不仅在服务器之间,而且在数据库之间都会有很多来回回响,所以逻辑确实不是那么简单。 但是,一旦完成,这无疑会让您感到无比的成就。

谷歌增加了一个新的队友

您好,对于所有出色的iOS工程师, 今天是学习令人兴奋的事情的好日子。 因此,如果几天前像我一样,您可能会被标题弄糊涂。 不用担心,我们将介绍Google的新功能。 该消息还将使您对Firebase感到不满。 你看到我在那里做什么吗? 好的,山姆,没有您的任何搞笑笑话,请您说明发生了什么! 谁是新队友? 好的,我不知道您是否听说过Google以Fabric的名义收购了一家公司的消息。 Twitter在2014年将Fabric引入了世界。您可以将Fabric视为Firebase的竞争对手。 如果您不知道Firebase是什么,请立即停止并在此处查看我的文章。 两者都有类似的工具,可帮助开发人员构建应用程序,而无需从头开始创建大量后端基础架构。 这些平台使开发人员可以专注于构建出色的应用程序,而不必担心如何创建身份验证,实时数据库或分析之类的流程。 布 即使Firebase和Fabric相似,Fabric也提供了一些我们可以讨论和探索的功能。 仅查看Fabrics工具(套件),我就感到非常兴奋,因为它们提供了有用的产品。 我认为有三种套件对任何应用都将非常有帮助。 我也相信这些工具也是Google可能正在研究的工具。 1.数字:使用电话号码(而不是电子邮件和密码)验证用户。 无需密码,因为用户将保持登录状态。 Fabric声称Digits的使用体验简单,安全且安全。 另外,他们指出,数字的转换率比要求的电子邮件高20%。 使用此工具,将无需登录电子邮件,但用户只需输入一次电话号码并提供验证码即可。 就我个人而言,我更希望通过电话号码将电子邮件发送给公司。 我将在未来几周内测试Digits,以查看是否可以在应用程序中使用它。 2.解答:提供有关受众如何使用您的应用程序的实时统计信息。 答案检查活动的用户数,会话长度,稳定性等级和保留率。 它类似于Google Analytics(分析),它从应用程序收集什么数据。 他们俩都会收集有关谁在使用该应用程序,获利和崩溃报告的数据。 答案是另一种工具,它不仅提供图表,还向您显示对您来说很重要的数字。 您会为您收集并编译所有数据,因此您不必弄清楚图表上显示了有关您的应用程序的信息。 我知道此工具将是Google尝试在其Firebase Analytics Platform中实现的工具。 为了节省时间,我遗漏了很多其他信息。 请在此处随意检查此工具的功能。 3. Crashlytics: iOS和Android排名第一的崩溃报告平台。 我只能说的是,我对Crashlytics提供的所有信息感到惊讶。 您检查是否由于应用程序,硬件或操作系统(iOS和Android)而导致崩溃。 知道崩溃信息很重要,因为如果您的应用出现问题,您可以准确找到问题发生的地方。 这样您就可以将所需的资源放在正确的位置以修复该错误。 我不能强调拥有像Crashlytics这样的工具有多么重要。 我并未涉及所有功能,但您可以在此处查看它们。 我的想法 现在,我们讨论了Fabric中三个工具的基础知识,让我们看看Google将使用这些产品。 Google为Firebase投入了大量时间和金钱。 Google已使其变得可访问,并开始扩展该平台。 尽管该平台正在增长,但仍有许多开发人员需要抓住。 另一方面,Fabric的产品已经起飞,并且已经被沃尔玛,Uber等大型企业使用。我明白了Google为什么要这些工具的原因,因为它将大大改善Firebase平台。 Google将找到一种将Crashlytics之类的工具整合到Firebase Analytics中的方法。 Firebase产品经理在这里讨论了一些工具的用途。 […]

适用于iOS的Firebase的ReactNative推送通知

什么是推送通知? 推送通知是在移动设备上弹出的消息。 应用发布者可以随时发送它们; 用户无需进入应用程序或使用其设备即可接收它们。 他们可以做很多事情; 例如,他们可以显示最新的体育比分,让用户采取行动(例如下载优惠券)或让用户知道某个事件(例如快速销售)。 推送通知看起来像SMS短信和移动警报,但它们仅覆盖已安装您的应用程序的用户。 每个移动平台都支持推送通知-iOS,Android,Fire OS,Windows和BlackBerry都有自己的服务。 下面,我将展示如何为iOS平台集成ReactNative推送通知。 请参阅此文章,以获取有关推送通知的更多信息: https : //www.urbanairship.com/push-notifications-explained 集成到iOS平台的ReactNative Push Notifications中的步骤 首先,创建一个React Native新项目,我们将配置推送通知。 反应本地初始化反应推送通知 现在,当您安装React Native时,需要考虑的几件事才能使它们正常工作而没有任何错误。 您应该使用XCode 10(当前最新),React Native 0.55(当前最稳定)。 接下来,我们为React Native https://github.com/evollu/react-native-fcm安装Firebase Cloud Messaging软件包 react-native链接react-native-fcm 安装Firebase Cloud Messaging Package之后,我们需要使用CocaPods安装FCM框架。 要安装它,我们首先在刚刚创建的“ react-push-notifications”项目上的“ ios”目录中导航,然后运行以下命令: cd ios && pod初始化 所以,我的PodFile看起来像这样 #取消注释下一行以定义项目的全局平台 平台:ios,“ 9.0” 目标“反应推送通知” #如果您使用的是Swift或想使用动态框架,请取消注释下一行 #use_frameworks! #pods for react-push-notifications pod“ Firebase […]

如何为IOS制作Firebase推送通知

制备 有一个反应性项目 反应本机初始化 cd fcm 纱 尝试先运行它以检查是否有任何错误。 反应本机运行iOS 如果没有错误,请继续下一步。 如果有,请检查Google以获取更多信息,通常没有错误。 2.安装React Native Firebase 纱线添加反应本机火力 转到Firebase控制台(https://firebase.google.com/console)并创建(或使用现有的)项目。 选择将Firebase添加到您的iOS应用。 或从您现有的应用程序中下载GoogleService-Info.plist文件(在这种情况下,请确保捆绑包值相同)。 在您的应用中记下捆绑包ID。 点击下一步。 然后下载GoogleService-Info.plist文件。 将该文件拖放到您的Xcode文件\项目名称文件夹中。 选择全部复制。 我的会是这样。 回到项目文件夹,在终端中开始编写这些命令。 光盘ios 荚初始化 打开您的Podfile并添加 pod“ Firebase / Core” 这是我的Podfile #取消注释下一行以定义项目的全局平台 #platform:ios,’9.0′ 目标’fcm’做 #如果您使用的是Swift或想使用动态框架,请取消注释下一行 #use_frameworks! #fcm的豆荚 pod“ Firebase / Core” 目标’fcmTests’做 继承! :search_paths #测试豆荚 结束 结束 目标’fcm-tvOS’做 #如果您使用的是Swift或想使用动态框架,请取消注释下一行 #use_frameworks! #fcm-tvOS的广告连播 目标’fcm-tvOSTests’做 继承! :search_paths […]

Firebase动态链接

首先,我们将简要讨论深度链接概念。 深度链接的概念是从另一个应用程序打开移动应用程序的特定内容,或者单击Web链接打开移动应用程序。 让我们举个例子。 首先将您的Instagram帖子分享到Twitter。 现在转到Twitter应用程序或在移动浏览器中打开twitter.com。 现在在推文中查看您的Instagram帖子。 现在单击该帖子,这会将您重定向到自己在Instagram应用上的帖子(如果已安装),否则它将在浏览器中打开该帖子。 因此,使用深层链接可以将用户重定向到您的应用程序,而不是在网络上显示内容,这更加用户友好和方便。 消息传递到其他应用程序也是可能的。 这可以使用自定义网址架构来实现。 现在您想到了,如果我们可以通过深层链接实现Firebase动态链接,那么为什么需要Firebase动态链接。 但是深度链接的局限性在于,这对于尚未安装应用程序的用户将不起作用。 例如,您想向应用程序用户显示个性化的欢迎消息,或者想显示促销优惠,或者想通过单击深层链接将其重定向到应用程序中的特定屏幕。 现在,如果用户尚未安装您的应用程序该怎么办? 在这种情况下,Firebase动态链接可以为您提供正确的解决方案。 这些深层链接可以满足您的所有需求。 通过创建一个动态链接,您可以将用户重定向到适当的平台。 单击此链接,移动应用程序用户将被重定向到其本机应用程序,而网络用户将被重定向到您的网站以获取特定内容。 您还可以自定义此行为。 如果用户尚未安装您的应用程序,则可以将其带到应用程序商店/游戏商店以下载应用程序,或带他在移动浏览器上显示内容。 当用户单击动态链接并安装应用程序时,信息在用户第一次打开应用程序时仍然可用。 Firebase动态链接需要iOS 8或更高版本。 如何创建Firebase动态链接? 您可以通过三种方式创建Firebase动态链接。 使用Firebase控制台 使用REST API 通过将动态链接参数添加到特定于您的应用程序的域来形成URL。 使用Firebase控制台创建动态链接 这对于在社交媒体上创建一个链接共享很有用。 单击Firebase控制台项目中的“动态链接”部分。 记下您的Firebase动态链接域,然后单击“新建动态链接”。 3)填写所需的信息,最后单击“创建动态链接”。 在iOS上接收动态链接 要接收您之前创建的Firebase动态链接,您必须在应用程序中包含Dynamic Links SDK,并在应用程序加载时调用handleUniversalLink:和dynamicLinkFromCustomSchemeURL:方法以获取在动态链接中传递的数据。 设置Firebase动态链接SDK 首先,将Firebase设置为您的iOS项目。 如果您不熟悉Firebase,可以在此处检查设置Firebase。 在pod文件中添加pod’Firebase / DynamicLinks’ 。 运行pod install并打开工作区文件。 检查是否在应用程序设置中指定了应用程序的App Store ID和Apple Developer Team ID。 要查看和编辑应用程序的设置,请转到Firebase项目的“设置”页面,然后选择您的iOS应用程序。 您可以通过打开以下URL来确认Firebase项目已正确配置为使用iOS应用程序中的动态链接:https://app_code.app.goo.gl/apple-app-site-association […]

Firebas(ics)第1部分:简单登录身份验证

是否想为您的应用添加登录功能? Firebase的后背(末端)。 Firebase是一种很棒的后端即服务(BaaS),如果您愿意的话,这使得为应用程序设置后端非常简单。 对于我的应用程序,我想使用其登录功能。 Firebase文档很有帮助,但是缺少一些链接,所以我想我写了本教程可以减轻您的学习难度! 但首先… 告诉Firebase您实际上要使用此功能。 在导航栏中单击“登录并验证”。 选中“启用电子邮件和密码身份验证” 设置Firebase代码 假设您已经设置了Firebase客户端,请使用以下代码(取自Firebase文档)来设置Firebase参考并将新用户添加到您的帐户中。 您将要用Firebase链接替换initWithURL值。 请注意,它有一个完成块,您可以在其中添加一些日志记录,以便知道它是否成功。 制作情节提要和IBAction 我已经在情节提要中创建了一个登录屏幕。 用户的电子邮件和密码的两个UITextField和“添加用户”和“登录”的两个UIButton。 单击时,“添加用户按钮”的IBAction将从文本标签中获取字符串,并将其作为电子邮件和密码值发送到firebase。 您需要将firebase代码放入IBAction中,并用从文本字段中获取的字符串替换createUser:和password:参数的参数。 在登录 接下来,您需要该用户登录。这需要Firebase验证输入的登录信息。与添加用户时一样,您可以使用完成框查看该用户是否存在。 还有一件事… 因此,令我困惑的是Firebase登录,这是因为没有内置的方式可以查看应用程序中的用户! 这对我和我的小组成员来说都很奇怪,我不确定我们做错了什么。 为了使它真正有用,您必须为用户创建一个字典-也许使用UID作为键。 然后,您可以将该人的任何数据添加到她的UID词典中。 在第2部分中将对此进行更多介绍!

Cordova에서Firebase이용하여推送通知base

在iOS上推送通知,在Cordova上下载Firebase插件,再在推送上下载。 APN密钥생성과Firebase활용방법들은科尔多瓦되는이내용이내용이내용이읽어이읽어보읽어보읽어다。 Apple推送通知服务SSL密钥密钥방식으이다。 방식의장장간간간하하하하하않아도다。다。 Apple开发人员计划의证书,标识符和配置文件메뉴로들어간다。 。이지에서사이드바이나올이다。 密钥를과정은다。 姓名,服务名称和服务名称。 继续하면确认화면으로넘어간다。 。기서된다。 화면에서화면에서p8 8다。 여기가다시가바로바로바로바。 고리고ID또한로고다。 密码,p8推送,p8密钥,密钥ID,团队ID供应。 团队ID는苹果开发人员计划成员资格에서이가능하다。 이제Key끝났다。 Firebase차례이다。 Firebase的서버와a쓰쓰서버와서버와a a a BaaS(后端即服务)。 base base Firebase능을다이다。 보안DB DB API API API Mo Mo Mo Mo通知외에도AdMob을광고로있다있다。 Fire로디어이디어가빠르게때때Fire를를를Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire。Fire 서비스볼륨이크지무료로능을로능을기장점이다。 지이하는推서버도Firebase를단시간에스트까스트까스트까!! 在Firebase上进行下载。 […]

Firebase云消息传递教程

介绍 本文的重点不是要教您如何从头开始制作Firebase应用,其目的是要揭开神秘面纱,并说明设置Firebase Cloud Messages的过程有多么简单。 当我第一次阅读文档时,它看起来相当艰巨,并且似乎要花很多时间才能完成工作,而实际上我花了不到20分钟的时间就可以开始工作。 我会稍微介绍一下客户端的设置,但由于文档非常善于解释这一点,因此我并没有太多涉及,并且我的复制粘贴毫无意义。 注意 Firebase Cloud Messages是新的。 Google Cloud Messages不是。 我以前从未看过GCM,所以我不知道区别/相似之处。 如果本文/指南中的内容有误,请在下面的评论中对我进行纠正。 我讨厌别人卡住,因为我犯了一个错误。 本指南非常简单,不适合生产环境。 只是为了说明如何设置简单的FCM服务。 先决条件 显然,您需要一个正常运行的Firebase项目。 您还需要了解以下内容: 节点JS Java脚本 基本的HTTP知识 客户端实现(我是iOS开发人员,因此我的示例将在iOS中完成) 能够在实际设备上运行示例应用程序 客户端和Firebase设置说明 虽然Firebase文档非常出色,但我建议您按照它们进行操作,以在客户端进行设置,但我会提到两点。 除了客户端安装指南告诉您的内容外,您的应用还需要注册推送通知并请求用户许可,在您的应用委托中,您可以执行以下操作: func应用程序(应用程序:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?)-> Bool { 让notificationSettings = UIUserNotificationSettings(forTypes:[。Badge,.Sound,.Alert],类别:nil) application.registerUserNotificationSettings(notificationSettings) 返回真 } func应用程序(应用程序:UIApplication,didFailToRegisterForRemoteNotificationsWithError错误:NSError){ 打印(错误) } func应用程序(应用程序:UIApplication,didReceiveRemoteNotification userInfo:[NSObject:AnyObject]){ 打印(userInfo) } func应用程序(应用程序:UIApplication,didRegisterUserNotificationSettings notificationSettings:UIUserNotificationSettings){ 如果notificationSettings.types!=。无{ application.registerForRemoteNotifications() } } 您显然可以跳过print()语句,但是在调试时提供了很好的信息。 另外,如果您打算在要在后台获取的通知中包括有效负载,则应在.plist中包括它 我在文档中错过的另一件事是,在创建Provisioning […]

在iOS 11中使用Codable拖放自定义类

介绍 我最近遇到了一个有趣的问题。 我为客户(学校)创建了一个mac应用程序,您可以在其中创建和管理学校提供的教师资料和科目(它们会定期更改)。 我创建的Mac应用程序具有一个带复选框的简单表格视图,您可以在其中为教师分配主题。 我正在使用Firebase进行所有操作,当它们从2.x迁移到3.x时,他们放弃了对macOS的支持。 尽管现在由于社区的巨大努力而再次运行,但我还是觉得做原生iOS应用程序是最好的方法。 解 我想创建一种将主题从一个表视图拖到另一个表视图的方法,从而将该主题分配给老师,如下所示: 但是我遇到了一个问题,我想不出将所需数据从一个表视图传输到另一个表的最佳方法。 我可以将主题的id发送到另一个表视图,但这意味着我将不得不重新获取主题或具有一些全局状态来查询。 我想要一个干净利落的解决方案。 输入: NSItemProviderReading,NSItemProviderWriting和Codable 使用这三种协议,我可以将Subject类编码为数据类型,将其作为ItemProvider传递,并将其用作UIDragItem ,然后在另一端重新实例化。 当用户启动拖动时,将发生以下情况: 表格视图将使用此方法向UITableViewDragDelegate询问UIDragItem func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] 此方法返回一个UIDragItems数组。 用一个NSItemProvider对象实例化一个NSItemProvider ,这是第一个挑战。 NSItemProviderWriting仅采用几种数据类型(NSString,UIImage,NSTextStorage,CNContact来命名),这是我们为了使我们的类创建项目提供者对象而需要采用的协议。 采用NSItemProviderWriting很容易,只有两个要求要处理。 第一个是writableTypeIdentifiersForItemProvider ,您必须在其中指定对象可以表示为哪种数据类型,并使用func loadData(withTypeIdentifier typeIdentifier: String, forItemProviderCompletionHandler completionHandler: @escaping (Data?, Error?) -> Void) -> Progress? 这是处理将类转换为上述属性中指定的数据类型的方法。 这就是Codable协议的来源。有了Codable,我们可以将对象编码为json数据对象,然后将其传递给项目提供者,然后使用NSItemProviderReading协议一致性在另一端对其进行解码。 如下所示,要使JSON编码和解码正常工作,您需要做的就是采用该协议。 显然,它有更高级的用法,您可能需要做更多的工作才能采用它,但是我将由其他人来解释。 //Subject.swift 最终课程主题:NSObject, NSItemProviderWriting, […]