Firebase简介

我们正处于快速原型制作的时代。 我们可能会想到一些好主意,但有时如果他们花费过多的工作,这些主意就无法实现。 通常,后端是限制因素-许多想法由于缺乏服务器端编码的知识或时间而无法实现。

作为移动开发人员,使用后端即服务(BaaS)平台可以帮助您快速实现想法。

Firebase具有快速原型制作和快速测试创意所需的所有关键功能。 使用Firebase,您可以简化身份验证,数据库和对象存储等功能的创建。 Firebase还具有其他功能,这些功能可用于验证原型,例如分析,A / B测试和推送通知。

最重要的是,Firebase对于小型项目是免费的!

配置iOS应用以使用Firebase

让我们创建一个使用Firebase的示例Xcode项目。 我们将其命名为MyFirstFirebaseApp

创建一个新的Xcode项目

创建一个新的Xcode项目

为您的项目选择一个单视图应用程序模板。


现在已经创建了项目,让我们开始为Firebase配置它。

创建一个Podfile

CocoaPods是Swift和Objective-C Cocoa项目的依赖项管理器。 我们需要在项目中对其进行初始化。 这可以通过pod init命令完成。

$ cd your-project directory
$ pod init

添加Firebase Pods

我们想将Firebase / Core窗格添加到我们的项目中。 这包括启动和运行Firebase所需的必备库。

$ pod 'Firebase/Core'

现在,这是您的Podfile的外观:

具有Firebase Core的Podfile

安装Pods并在Xcode中打开项目

包括Pod详细信息之后,让我们使用pod install命令安装它们。 然后,我们可以通过打开.xcworkspace文件在Xcode中打开项目。

$ pod install
$ open your-project.xcworkspace

创建和配置您的Firebase帐户

创建Firebase帐户

现在,让我们设置一个Firebase帐户 ! 众所周知,Firebase是Google产品,因此我们可以使用Gmail帐户创建Firebase控制台帐户。

但是,请注意:Firebase并非完全免费。 我们可以从免费版本开始进行初始原型制作,但是如果您打算将Firebase投入生产,则应该了解价格结构

在Firebase控制台中创建新项目

现在我们已经成功登录到Firebase帐户,让我们创建一个项目。 单击添加项目

创建项目后,即可与iOS,Android和Web共享Firebase数据库,用户管理和远程配置。

在Firebase控制台中添加项目

创建项目后,您将进入“ 项目概述”屏幕。 在“入门”下 ,单击iOS以开始使用我们的iOS原型。

Firebase项目概述

注册iOS应用

要注册我们的应用,我们需要提供一个项目标识符。

将Firebase添加到iOS App注册应用

现在,点击注册应用程序 。 系统会要求您下载一个.plist文件,该文件需要添加到您的Xcode项目中。

下载infoplist文件

GoogleService-Info.plist将包含基本信息,例如客户端ID,API密钥,数据库URL和存储桶。 下载后看看。 然后,您需要将其拖到Xcode下方显示的文件夹中,以将其添加到项目中。

具有GoogleService-Infoplist的Xcode项目

将初始化代码添加到您的应用程序

现在,您可以将Firebase初始化代码添加到您的应用程序中! 打开AppDelegate ,然后导入Firebase。 然后在didFinishLaunchingWithOptions添加FirebaseApp.configure() 。 您的代码将如下所示:

import UIKit
import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)
    -> Bool {
    FirebaseApp.configure()
    return true
  }
}
验证Firebase是否在您的应用程序中正常工作

设置终于完成,您可以测试应用程序中是否正确安装了Firebase。 当您在Firebase控制台中的“将Firebase 添加到您的iOS应用”页面上单击“ 下一步”时,您将看到以下信息:

运行您的应用以验证安装

让我们通过Xcode清洁,构建和运行该应用程序-应该没有错误。 您还可以在控制台中看到一些与Firebase相关的日志。 如果一切正常,Firebase控制台将告知您。

欢呼! 现在,我们已经为我们的应用程序成功设置了Firebase。

Firebase用户管理

如前所述,Firebase可以用于用户管理,因此让我们设置应用程序以进行身份​​验证和管理用户。 首先,让我们导航到Firebase仪表板中的“身份验证”部分,如下所示。

Firebase控制台中的“身份验证”部分

点击设置登录方法 。 在这里,我们可以看到许多可能性。 您可以选择多个,或者,如果您不想进行任何登录,则可以选择匿名

  • 电子邮件/密码 :允许用户使用其电子邮件地址和密码进行注册。 Firebase SDK还提供电子邮件地址验证,密码恢复和电子邮件地址更改原语。
  • 电话 :允许用户使用Firebase SDK电话验证和用户身份验证工具以手机号码登录。 根据Firebase的免费Spark计划,您每月可获得10,000次电话登录,但此后您需要付费。 选择此选项之前,请先查看定价部分。
  • Google :在已连接的iOS和网络应用程序上会自动配置Google登录。 要为您的Android应用设置Google登录,您需要在“项目设置”中为每个应用添加SHA1指纹。
  • 玩游戏 :配置客户端ID和客户端密码。
  • Facebook :要使用Facebook进行身份验证,您必须将OAuth重定向URI添加到您的Facebook应用配置中。
  • Twitter :要使用Twitter进行身份验证,您需要在Twitter应用程序配置中添加一个回调URL。
  • GitHub :要通过GitHub设置身份验证,您将向您的GitHub应用配置添加授权回调URL。
  • 匿名 :选择此选项可在您的应用程序中启用匿名访客帐户,这使您可以强制执行特定于用户的安全性和Firebase规则,而无需用户提供凭据。

配置电话验证

让我们看看如何使用电话作为登录方法。

首先,导航至“ 登录方法” ,单击“ 电话” ,然后启用它。 您会看到如下屏幕:

您还需要在Podfile中包括Firebase/Auth pod。

pod 'Firebase/Auth'

在Podfile中添加以上行之后,导航至项目文件夹并运行pod install命令。

接下来,您需要在Xcode项目中启用推送通知。

启用推送通知

要找到此设置,请从“ 目标”面板中选择您的应用,然后单击“ 功能”选项卡。 从那里,您可以启用推送通知

reCAPTCHA验证

现在,让我们配置reCAPTCHA验证。 reCAPTCHA用于无法发送或接收静默推送通知的情况,例如,当用户已禁用应用程序的后台刷新时,或在iOS模拟器上测试应用程序时。 在这种情况下,Firebase身份验证使用reCAPTCHA验证来完成电话登录流程。

单击Xco​​de左侧面板中的GoogleService-Info.plist ,以打开plist。 现在,将REVERSED_CLIENT_ID的值复制到TextEdit或另一个记事本中。

接下来,转到目标 >您的应用> 信息 > URL类型 。 单击“ +”按钮,然后将REVERSED_CLIENT_ID值复制到URL Schemes中 ,如下所示。

网址类型设置
配置Firebase云消息传递

现在,让我们使用应用程序的APN配置Firebase Cloud Messaging。

打开Firebase控制台,然后单击“ 设置”按钮,您将看到“ 项目设置”和“ 用户和权限” 。 单击项目设置 ,然后单击云消息传递选项卡。 在此屏幕上,您可以找到iOS应用配置部分。

iOS应用程序的Firebase Cloud Messaging设置

要启用Firebase Cloud Messaging,我们将APN和APN身份验证密钥上载到此对话框。

您需要创建一个APNs身份验证密钥和一个APNs证书密钥。

创建APNs身份验证密钥的步骤
  • 在您的开发者帐户中,转到证书,标识符和配置文件 ,然后在密钥下,选择全部
  • 单击右上角的添加按钮( + )。
  • 输入APNs身份验证密钥的描述。
  • 在“ 关键服务”下 ,选中“ APN”复选框,然后单击“ 继续”
  • 单击确认 ,然后单击下载 。 将密钥保存在安全的地方! 这是一次性下载,以后无法检索到密钥。
创建APNs证书密钥的步骤
  • 在您的Apple开发人员帐户中创建一个应用程序ID ,并在创建时启用“ 推送通知” 。 应用程序ID是唯一标识应用程序的标识符。 按照惯例,它由带有您公司名称和应用名称(例如com.mysoft.myfirstfirebaseApp )的反向域名表示。
  • 为上述应用程序ID创建一个配置文件

就是这样! 现在,我们完成了所有配置,并且可以开始实现注册和登录流程。

用电话认证注册用户

让我们回到Xcode并创建RegistrationViewController.swiftRegistrationViewController.storyboardRegistrationService.swift文件。

对于情节提要,我添加了一个UITextField和UIButton,如下所示。 这些应该链接在RegistrationViewController.swift中

注册故事板

这是我的RegistrationViewController.swift的外观:

import Foundation
import UIKit

class RegistrationViewController: UIViewController, UITextFieldDelegate {
    
    @IBOutlet weak var phoneNumber: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func requestOTPTapped(_ sender: Any) {
        
    }
}

由于我们的主要重点是Firebase,因此我们将不会实现UITextFieldDelegates。 相反,为了简单起见,我们将在单击按钮时捕获文本。

现在,让我们在RegistrationService.swift中添加以下代码。

import FirebaseAuth

class RegistrationService {

    func getVerificationId(phoneNumber: String, completionHandler: @escaping (String?, Error?) -> Void){
        
        PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumber, uiDelegate: nil) { (verificationID, error) in
            
            if let error = error {
                completionHandler(nil, error)
            }
            
            if let id = verificationID {
                completionHandler(id, nil)
            }
        }
    }
}

在此代码, PhoneAuthProvider.provider().verifyPhoneNumber需要一个电话号码输入并发送回我们的verificationID 。 这还会触发文本字段中提供的电话号码的一次性密码(OTP)消息。 用户将在手机上收到OTP,并将其重新输入到应用程序的警报对话框中。

注意:输入电话号码时,请确保还输入了国家代码。

还要注意,我们必须记住要在文件顶部import FirebaseAuth

现在,让我们回到RegistrationViewController.swift并调用getVerificationId ,如下所示。 在这里,我将ID打印到控制台,以检查是否生成了verificationId

import Foundation
import UIKit

class RegistrationViewController: UIViewController, UITextFieldDelegate {
    
    @IBOutlet weak var phoneNumber: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func requestOTPTapped(_ sender: Any) {
        if let phoneNumber = phoneNumber.text{
            
            RegistrationService().getVerificationId(phoneNumber: phoneNumber){ (id, error) in
                if error != nil {
                    return
                }
                
                if let id = id {
                    print(id)
                }
            }
        }
    }
}

登录方法

现在,让我们在RegistrationService中编写一个登录方法。 在这里,我们将使用VerificationId和OTP创建一个Firebase Credential对象。 代码如下所示:

func signIn(verificationId: String, verificationCode: String, completionHandler: @escaping (String?, Error?) -> Void){
        
        let credential = PhoneAuthProvider.provider().credential(withVerificationID: verificationId, verificationCode: verificationCode)
        
        Auth.auth().signIn(with: credential) { (user, error) in
            
            if let error = error {
                completionHandler("Error", error)
            }
            completionHandler("Success", nil)
        }
    }

收到ID后,我们将显示一个警报视图,供用户捕获OTP并在RegistrationService调用signIn方法。 经过这些更改后, RegistrationViewController外观如下所示:

import Foundation
import UIKit

class RegistrationViewController: UIViewController, UITextFieldDelegate {
    
    @IBOutlet weak var phoneNumber: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func requestOTPTapped(_ sender: Any) {
        if let phoneNumber = phoneNumber.text{
            
            RegistrationService().getVerificationId(phoneNumber: phoneNumber){ (id, error) in
                if error != nil {
                    return
                }
                
                if let id = id {
                    self.displayAlert(id: id)
                }
            }
        }
    }
    
    func displayAlert(id: String) {
        let alertController = UIAlertController(title: "OTP?", message: "", preferredStyle: .alert)
        
        let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: {
            (action : UIAlertAction!) -> Void in
        })
        
        let saveAction = UIAlertAction(title: "Save", style: .default, handler: {
            alert -> Void in
            
            let otpText = alertController.textFields![0] as UITextField
            if let otp = otpText.text {
                print(otp)
                
                RegistrationService().signIn(verificationId: id, verificationCode: otp){ (status, error) in
                    if error != nil {
                        return
                    }
                    
                    print("SignIn status", status ?? "Unknown")
                }
            }
        })
        
        alertController.addTextField { (textField : UITextField!) -> Void in
            textField.placeholder = "OTP"
        }
        
        alertController.addAction(cancelAction)
        alertController.addAction(saveAction)
        
        self.present(alertController, animated: true, completion: nil)
    }
}

现在,您可以运行您的应用进行试用-单击“ 请求OTP”后,您会看到以下内容。

注册OTP对话框

现在登录状态将显示为Success 。 我们可以在Firebase控制台中检查是否已创建用户。

结论

在本教程中,我们使用Xcode和Firebase构建了一个简单的应用程序。 希望您将获得一些新技能,并可以在即将进行的项目中付诸实践。

如有任何疑问,请在下面的评论中告诉我。

翻译自: https://code.tutsplus.com/tutorials/introduction-to-firebase--cms-31454

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Firebase是一个由Google提供的移动和Web应用开发平台,它提供了一系列工具和基础架构,帮助开发者构建高质量的应用程序、扩大用户群并实现盈利。Firebase提供了多种功能,包括实时数据库、身份验证、云存储、云函数、消息推送等。 在Java中使用Firebase,可以使用Firebase Admin Java SDK来访问Firebase服务。该SDK允许从Java的特权环境(例如服务器或云)访问Firebase服务。您可以使用Firebase Admin Java SDK来管理用户身份验证、读写实时数据库、存储和检索文件等。 要使用Firebase Admin Java SDK,您需要在项目中添加相应的依赖项。您可以在项目的构建文件中添加以下依赖项: ```java dependencies { // Firebase Admin SDK implementation 'com.google.firebase:firebase-admin:7.0.0' } ``` 然后,您可以在Java代码中使用Firebase Admin Java SDK的各种功能。例如,以下代码演示了如何使用Firebase Admin Java SDK创建一个新用户: ```java import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.UserRecord; import com.google.firebase.auth.UserRecord.CreateRequest; import com.google.firebase.auth.UserRecord.CreateRequest.User; public class FirebaseExample { public static void main(String[] args) throws Exception { // 初始化Firebase Admin SDK FirebaseAuth firebaseAuth = FirebaseAuth.getInstance(); // 创建一个新用户 CreateRequest request = new CreateRequest() .setEmail("user@example.com") .setPassword("password") .setDisplayName("John Doe") .setDisabled(false); UserRecord userRecord = firebaseAuth.createUser(request); System.out.println("Successfully created new user: " + userRecord.getUid()); } } ``` 上述代码使用Firebase Admin Java SDK创建了一个新用户,并打印出了新用户的UID。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值