js css html

基于Firebase平台开发(六) —— 基于Firebase

2021-02-21  本文已影响0人  刀客传奇

版本记录

版本号 时间
V1.0 2021.02.21 星期日

前言

Firebase是一家实时后端数据库创业公司,它能帮助开发者很快的写出Web端和移动端的应用。自2014年10月Google收购Firebase以来,用户可以在更方便地使用Firebase的同时,结合Google的云服务。Firebase能让你的App从零到一。也就是说它可以帮助手机以及网页应用的开发者轻松构建App。通过Firebase背后负载的框架就可以简单地开发一个App,无需服务器以及基础设施。接下来几篇我们就一起看一下基于Firebase平台的开发。感兴趣的看下面几篇文章。
1. 基于Firebase平台开发(一) —— 基于ML Kit的iOS图片中文字的识别(一)
2. 基于Firebase平台开发(二) —— 基于ML Kit的iOS图片中文字的识别(二)
3. 基于Firebase平台开发(三) —— Firebase基本使用简介(一)
4. 基于Firebase平台开发(四) —— Firebase基本使用简介(二)
5. 基于Firebase平台开发(五) —— Firebase基本使用简介(三)

开始

首先看下主要内容:

了解Firebase Analytics如何帮助您跟踪iOS应用的使用情况。内容来自翻译

接着看下写作环境:

Swift 5, iOS 14, Xcode 12

接着就是正文了。

这一天终于来了。您的Xcode项目正在构建中,并且您已将应用程序提交到App Store

现在怎么办?您在Twitter上吹牛,并请您的关注者安装您的应用程序。

几天后,您会收到第一次评论。名为RayFromVA的人给了您两星评语,并带有注释:It could be better

那是什么意思?

您打开您的应用程序。一切都按照您的预期进行。您怎么知道哪个更好?

您可以贿赂家人给您评论,但是Firebase Analytics提供了更好的解决方案。

在此Firebase Analytics教程中,您将构建Cocoabucks,这是一个用于新建咖啡链的移动店面。

在此过程中,您将学习如何:

多年来,Google Analytics for Firebase经过多次迭代是毫无价值的。谷歌在2019年将其重命名为Google Analytics,但每个人仍然称其为Firebase Analytics

注意:本教程假定您了解SwiftUI的基础知识。如果您不熟悉SwiftUI,请先查看SwiftUI: Getting Started tutorial。您必须安装Xcode 12才能遵循本教程。 Firebase Analytics仅在Xcode 12或更高版本上与SwiftPM一起使用。

打开入门项目,在starter中打开Cocoabucks.xcodeproj。 构建并运行以查看运行中的应用程序:

Xcode中,查看主要文件:

注意:如果您不熟悉移动分析的概念,请查阅Getting Started with Mobile Analytics

要在您的应用程序中使用Firebase Analytics,您首先需要设置一个Firebase项目。


Setting Up Firebase

转到Firebase主页,然后单击Get Started

如果您未使用Google帐户登录,请输入您的凭据。 如果您没有帐户,请创建一个新帐户create a new one

然后,您会看到Firebase Console的欢迎屏幕:

1. Creating a Firebase Project

免费创建Firebase项目。 单击Create a project。 将会出现一个新窗口:

为您的项目命名Cocoabucks。 接受Firebase条款,然后单击Continue

Firebase会要求您将Google Analytics(分析)添加到Firebase项目中。

保持启用状态,然后单击Continue

注意:如果您已经有Firebase项目,则其中某些步骤可能不会出现,因为您已经为帐户进行了选择。

最后一步是设置您的分析位置。

设置位置并不意味着Google不会跟踪其他国家/地区的用户。 它只想知道您的组织机构或住所。

接受数据共享条款,然后单击Create project

点击Continue,稍等片刻,您将看到项目的控制台。


Adding Firebase to Xcode

Firebase Console是您项目的Firebase服务的容器。 您将使用它来查看应用程序的分析。 单击Get started by adding Firebase to your app下面的圆圈iOS按钮。

1. Registering the App

将会打开一个新表格,要求您注册应用并输入应用的bundle ID

要设置您应用的bundle ID,请先回到Xcode。 选择Cocoabucks.xcodeproj。 然后选择target并选择Signing & Capabilities

接下来,在小组Team下拉菜单下设置您的Apple Developer帐户。 最后,按照以下格式com.[your name].cocoabucks为您的应用设置Bundle Identifier。 请务必在您的姓名中使用所有小写字母,并且不要包含空格。

注意:不确定如何在Xcode中设置您的个人团队和bundle ID? 在App Store教程中查看Your First App in the App Store

从Xcode复制您的bundle ID。 返回Firebase并将其粘贴iOS Bundle ID下。

点击Register app

2. Downloading the Config File

接下来,下载GoogleService-Info.plist。 按照概述的说明将其拖到您的Xcode项目中。

当Xcode提示时,如果需要,请选中Copy Items if needed

单击Next,您将看到提示Add Firebase SDK to your Xcode

3. Adding Firebase SDK Using SwiftPM

默认情况下,Firebase告诉您使用CocoaPods添加SDK

在本教程中,您将使用SwiftPM安装Firebase SDK

注意:在撰写本文时,Firebase支持通过Beta中的SwiftPM安装。 存在一些已知问题,如果尝试在设备上运行该应用程序,则可能会出错。 如果您这样做,请参考此办法workaround进行修复。

打开Xcode并转到File ▸ Swift Packages ▸ Add Package Dependency

将打开一个新窗口,提示您输入软件包存储库URL。 将https://github.com/firebase/firebase-ios-sdk复制并粘贴到其中:

点击Next。 您会看到一个新窗口,要求您选择package选项:

由于这些是推荐的选项,因此一切都保持原样。 点击Next

现在,SwiftPM将获取所有可用库的列表。 完成后,选中FirebaseAnalytics

单击FinishSwiftPM将为您做所有事情。 在Document Outline中,您会看到它向您的项目添加了Swift Package Dependencies。 Xcode可能需要一段时间才能处理所有内容:

现在返回Firebase Console,然后单击Next

4. Initializing Firebase in Xcode

要在应用启动时连接Firebase,您需要在主类中对其进行初始化:

Firebase文档尚未解决SwiftUI或新的App生命周期。 它具有UIKit的说明。 您将学习如何在SwiftUI中进行操作。

返回Xcode并打开Cocoabucks.swift。 将以下内容添加到文件顶部:

import Firebase

接下来,在// Initialize Firebase下面添加:

init() {
  FirebaseApp.configure()
}

应用程序启动完成后,上面的代码将启动Firebase服务。

在构建项目之前,您需要添加一些其他内容,以避免从Xcode收到错误或警告。

注意:请确保您不跳过此步骤。 如果您这样做,则Analytics(分析)将无法正常工作。

5. Editing Build Settings

单击Document Outline中的Cocoabucks。 选择target,然后在Build Settings下找到Other Linker Flags。 在里面添加-ObjC

构建并运行。 您的应用已在后台设置,并且已经在收集一些默认分析。

返回浏览器中的Firebase控制台,然后单击Next。 然后单击Continue to console。 现在,您已将iOS应用添加到Firebase项目中。


Firebase Analytics Events

您已经完成了创建Firebase项目并向其中添加iOS应用的过程。 您尚未添加任何代码,但Firebase已经在收集一些默认分析。

与大多数其他服务一样,Firebase使用围绕events构建的系统:

每个事件都有一个name(如String)和可选的参数字典Dictionary。 它们的值可以是StringInt

当人们使用您的应用程序时,互动会触发许多事件。 他们在Firebase控制台中被跟踪,合并并报告给您。

默认情况下,Firebase会在任何应用程序中收集一些基本交互:

您可以在文档Firebase Documentation中找到这些事件的完整列表。 您需要自己在应用程序中记录其他大多数事件。

1. Viewing Events in Dashboard

打开Firebase控制台,然后转到Analytics ▸ Dashboard

注意:大约需要24小时才能在信息中心中查看所有分析。 您不必等待继续本教程,但请注意,其中不会看到任何分析。

相反,Firebase具有DebugView,您可以在其中查看近实时收集的分析。 您会在几个部分中看到它的实际效果。

检查仪表板以查看如何收集和呈现不同的事件。 您可以查看您的应用程序的稳定性,或过去30分钟内的用户数量。

2. Adding Predefined Events

Firebase建议您在应用程序中使用预定义的事件(predefined events)。 它们后面的上下文已经定义,您可以看到一些额外的信息。

您正在构建一个电子商务应用程序,其中包含适合该类型的预定义事件的简洁列表。 您可以在Events: Retail/E-commerce list列表中找到它们。

这些事件之一就是购买。 您将其中一些添加到结帐流程中。

返回Xcode并打开CheckoutView.swift。 将以下内容添加到文件顶部:

import Firebase

您将添加一个用于完成订单的预定义事件。 记录该事件的最佳时间是用户点击Confirm order

Confirm order动作中的// TODO 1替换为:

FirebaseAnalytics.Analytics.logEvent(AnalyticsEventPurchase, parameters: [
  AnalyticsParameterPaymentType: Self.paymentTypes[paymentType],
  AnalyticsParameterPrice: totalPrice,
  AnalyticsParameterSuccess: "1",
  AnalyticsParameterCurrency: "USD"
])

Firebase Analytics使用logEvent(_:parameters :)记录所有类型的事件。

在上面的代码中,您记录了名为AnalyticsEventPurchase的预定义事件。 您添加名为AnalyticsParameterPaymentTypeAnalyticsParameterPriceAnalyticsParameterCurrency的预定义参数。

您可以根据用户选择为他们分配paymentTypetotalPrice的值。 currency参数只有一个值,因此您给它提供了默认值USD

当您开始输入AnalyticsEvent时,Xcode将显示所有可用选项的列表:

您可以通过查看事件和参数的前缀来区分它们。 事件以AnalyticsEvent为前缀,而参数以AnalyticsParameter开头。

构建并运行。 在购物车中添加一些物品。 然后查看您的购物车并选择Place Order

最后,选择Confirm Order。 每当用户在您的应用中确认订单时,Firebase都会记录购买事件。

3. Adding Custom Events

您可以创建自定义事件来分析尚未定义的事件,也可以更改现有事件。 跟踪屏幕是应用程序开发人员在其应用程序中跟踪的最常见事件之一。

Firebase会跟踪一个名为AnalyticsEventScreenView的默认事件,但会为其分配一个通用类名称。

NotifyingMulticolumnSplitViewController作为屏幕名称并不能告诉您太多。

在这种情况下,最好创建一个自定义事件。

Xcode中,打开ProductDetailView.swift并将以下内容添加到文件顶部:

import Firebase

接下来,将//.onAppear()中的// TODO 2替换为:

// 1
FirebaseAnalytics.Analytics.logEvent("detail_screen_viewed", parameters: [
  // 2
  AnalyticsParameterScreenName: "product_detail_view",
  // 3
  "product_name": product.name
])

下面进行细分:

您可以根据自己的喜好混合并匹配自定义事件和预定义事件以及参数。 由于您的事件名称不得超过40个字符,因此请保持简短且与众不同的名称。

构建并运行。 现在,每次详细信息视图出现在手机屏幕上时,Firebase都会记录您的自定义事件。

现在是时候查看一些分析工作以及您的应用在后台发生了什么。

4. Enabling DebugView

在开发应用程序时,在编写代码时查看后台发生了什么会很有帮助。 在这种情况下,您想查看是否正在记录事件。 Firebase有一个名为DebugView的工具。

首先,您需要启用它。 在Xcode中,转到Product ▸ Scheme ▸ Edit Scheme。 在Run事件中,选择Arguments

Arguments Passed On Launch中,单击+,然后输入-FIRAnalyticsDebugEnabled

确保在开始处包含破折号。

关闭对话框。 构建并运行。

Xcode控制台中会有很多代码。 在各行中的某处,您会看到类似以下的条目:

启用调试模式后,您将看到多个事件,并且Xcode控制台将快速填充。

几乎实时发送分析数据并不是生产中的典型行为。

为了考虑用户的电量,Firebase Analytics仅在以下情况下发出分析数据:

注意:启用调试模式是因为在本教程的其余部分中将使用它。 您可以随时通过将启动时传递的参数更改为-noFIRAnalyticsDebugEnabled来禁用调试模式。 然后,由于启用了调试模式,因此将您的应用程序删除并重新安装在模拟器中,因为它已保存到磁盘。

5. Viewing Events in DebugView

打开Firebase控制台,然后在左窗格的Analytics(分析)下,单击DebugView

构建并运行。 订购一些饼干。 当您点击确认订单(Confirm Order)时,时间轴中将出现一个事件。

事件可能需要一段时间才能显示,但是几秒钟后,您会在屏幕上看到它们:

在右侧,您会看到最近30分钟内记录的事件列表。 点击事件名称以查看其所有属性:

单击x退出视图。

6. Viewing Events in the Firebase Console

尽管在开发时调试模式很有用,但您更有可能在Firebase控制台左窗格的Events下查看数据集:

请注意,最多可能需要24小时才能显示事件。

此报告显示了来自您所有iOS和Android应用程序的分析数据。

大公司通常有专门的团队来跟踪和分析。在一个应用程序中,可能会跟踪数百个事件,具体取决于最终目标。

当您拥有足够的数据并且要进行认真的深入分析时,可以将数据导出到Google数据仓库服务BigQuery中。本教程没有介绍BigQuery,但是如果您的应用跟踪很多,那么值得进一步研究该服务。


User Properties and Audiences

虽然看到数据收集很好,但是有时您希望将其分为更特定的用户细分。

很高兴看到有人在造访您的应用程式内商店,但这些人是谁?

他们是新用户吗?狗主人?加拿大人?

知道您的用户是谁,可以使您更轻松地更详细地分析数据。

1. Filtering With User Properties

默认情况下,Firebase Analytics为您提供一些细分。您可以按设备类型,性别,国家/地区等过滤任何特定事件。

打开Firebase Console控制台并创建一个新的过滤器。单击仪表板左上方的Add Filter。选择要过滤的用户属性,比如所有你的iPhone用户:

通常,您可能需要更具体的数据。 为此,您可以创建自定义用户属性。

您可以通过定义键值对来添加自定义用户属性。

将用户属性分配给用户后,此后的所有事件均具有与该用户属性相关联的事件。

您可以定义多个用户属性,但是如果您想简化生活,可以将它们保留为少量离散值。 事件和用户属性太多,只会使您更难跟踪谁做了什么,谁是谁。

您的营销团队有一个理论,猫用户比狗用户更有可能进行应用内购买。 他们想用数据备份该声明。 这听起来像是自定义用户属性的工作。

2. Adding Custom User Properties

是时候在主屏幕的左侧调查问卷按钮上添加一些功能了。

构建并运行。 当您点击左上角的鼻子按钮时,会弹出警报,询问您是猫用户还是狗用户:

用户回答问卷后,便会为其分配一个自定义用户属性。 由于截止日期很紧,因此请确保模态窗口上没有退出按钮。

打开ProductListView.swift并将以下内容添加到文件顶部:

import Firebase

直接添加用户属性。

您已经设置了alert view,因此您要做的就是向每个选择按钮添加一个用户属性。

在视图主体的底部,找到alert修改器。

您会看到“狗”和“猫”按钮都为空。

在主要按钮或猫按钮的动作内,将// TODO 3替换为:

FirebaseAnalytics.Analytics.setUserProperty(
  "cat_person",
  forName: "dog_or_cat_person")

对辅助按钮或狗按钮执行相同的操作。 将// TODO 4替换为:

FirebaseAnalytics.Analytics.setUserProperty(
  "dog_person",
  forName: "dog_or_cat_person")

您可以使用setUserProperty(_:forName :)设置用户属性。 给它自定义名称dog_or_cat_person和两个值:dog_personcat_person

构建并运行。 打开调查表并选择答案。

在Xcode控制台的某个位置,打开了调试视图,将出现新行:

它告诉您的信息不多,只是您已设置了用户属性。 玩应用程序并触发不同的事件。

3. Viewing User Properties in DebugView

打开Firebase控制台,然后单击DebugView。 您会看到以橙色文字记录的新用户属性:

如果在设置用户属性后记录了其他事件,则每个事件都会分配一个用户属性。

您必须先在Firebase控制台中创建一个事件,然后才能根据用户属性的值过滤掉这些事件。

仍在Firebase控制台中,在左窗格中单击User Properties。 然后单击Create your first user property

Xcode复制并粘贴dog_or_cat_person。 最好复制并粘贴它,因为添加用户属性后就无法重命名或删除它。 另外,自定义用户属性的数量上限为25个。

提供说明,然后单击Create

从那时起,当Firebase控制台记录新事件时,您将能够通过自定义用户属性的值对其进行过滤。

那谁赢了? 猫用户会买更多的饼干吗?

4. Tailoring User Experiences with Audiences

Firebase AnalyticsAudiences功能更加强大。

它们使您能够创建满足特定条件的用户组。 您可以将它们视为高级过滤选项。 它们可以放宽,也可以缩小,可以帮助您提供个性化的用户体验。

Firebase控制台中打开Audiences,以查看其中已添加的一些对象:

由于您添加了预定义的购买事件,因此Firebase为您添加了Purchasers。 这就是使用预定义事件的妙处。

考虑下一个用例。

一位用户查看了您应用中的一个或多个产品,转到了结帐屏幕,但未完成订单。

这些操作仅告诉您用户打开了该应用程序,想要下订单,但在完成之前将其删除。 这可能意味着结帐流程出了点问题,订单失败或用户关闭了该应用。

您无法确定。

您可以创建这些用户的受众。 为它命名并定义要记录的事件列表。 将其视为待办事项列表,在此列表中,您需要先完成列表中的所有项目,然后再将列表标记为已完成。

Firebase检测到此类事件时,它将将该用户放入指定的受众群体中。 您可以通过吸引受众群体来仅针对那些特定用户来个性化该应用程序。

最后,您可以通过应用内弹出式屏幕询问这些用户为什么还没有完成订单。 您可以从属于该受众群体的用户那里得到具体的反馈,而不必烦扰其他用户。

您认为Google从何处获得这些个性化广告? 您的朋友给您发送了有关他前往巴哈马群岛的消息,现在,在您的余生中,您到处都会看到巴哈马群岛。

您只了解了Firebase Analytics可以执行的一小部分。 探索更多选择。 例如,尝试创建一些Audiences

如果您不知道从哪里开始,那么Firebase Official Documentation就是一个很好的起点。

并且一定要查看Firebase Tutorial: Getting Started,以了解有关Firebase如何为您的应用程序增强功能的更多信息。

后记

本篇主要讲述了基于Firebase AnalyticsApp使用率的跟踪,感兴趣的给个赞或者关注~~~

上一篇下一篇

猜你喜欢

热点阅读