MongoSwiftMobile 4.0.0

MongoSwiftMobile 4.0.0

Jason FlaxEric DanielsAdam Chelminski 维护。



  • Jason Flax,Adam Chelminski 和 Eric Daniels

iOS Swift 4.0 Apache 2.0 License Cocoapods compatible

MongoDB Stitch iOS/Swift SDK

官方的 iOS/Swift 版本的 MongoDB Stitch SDK。

索引

文档

讨论

安装

XCode/iOS

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理工具。您可以使用以下命令进行安装:

$ gem install cocoapods

要构建大于 0.2.0 的 Stitch iOS,需要 CocoaPods 1.1.0+。

要使用 CocoaPods 将 iOS SDK 集成到 Xcode 项目中,请在 Podfile 中指定它。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'StitchSDK', '~> 4.0.0'

    # optional: for using the AWS S3 service
    pod 'StitchSDK/StitchAWSS3Service', '~> 4.0.0'
    # optional: for using the AWS SES service
    pod 'StitchSDK/StitchAWSSESService', '~> 4.0.0'
    # optional: for using the Firebase Cloud Messaging service
    pod 'StitchSDK/StitchFCMService', '~> 4.0.0'
    # optional: for using the HTTP service
    pod 'StitchSDK/StitchHTTPService', '~> 4.0.0'
    # optional: for using the twilio service
    pod 'StitchSDK/StitchTwilioService', '~> 4.0.0'
end

然后,运行以下命令:

$ pod install

打开由 pod install 生成的 .xcworkspace 文件,以访问包含所有必要的 Stitch 依赖项的项目。

示例使用

使用 SDK 创建新应用(iOS)

在 Stitch 上设置应用程序

  1. 访问 https://stitch.mongodb.com/ 并登录到 MongoDB Atlas。
  2. 在项目中创建一个新的应用程序,并赋予您喜欢的名称。
  3. 通过点击左侧面板中的 Stitch Apps 并选择您的应用程序,在 Stitch 中访问您的应用程序。
  4. 通过转到左侧面板的 Clients 并在 App ID 部分点击复制,复制您的应用程序的客户端应用程序 ID。
  5. 通过转到左侧面板的 Users 中的 Providers 并编辑和启用“允许用户匿名登录”来编辑和启用“允许用户匿名登录”。

在XCode/CocoaPods中使用Stitch设置项目

  1. 下载并安装XCode
  2. 使用您想要的名称创建一个新应用程序项目。请确保选择了Swift作为所选语言。
  3. 在命令行中转到项目目录,并运行pod init
  4. 在生成的Podfile中,在您的应用程序目标的依赖项下添加以下行
    pod 'StitchSDK', '~> 4.0.0'
  1. 运行pod install
  2. 打开生成的.xcworkspace文件
  3. 您的应用程序项目将配置所有必要的依赖项,以便与MongoDB Stitch进行通信。
  4. 要使用基本Stitch功能,在一个源文件中导入import StitchCore
  5. 要使用Stitch通过Stitch访问远程MongoDB实例,在一个源文件中导入import StitchRemoteMongoDBService

使用SDK

初始化SDK

  1. 当您的应用程序初始化时,运行以下代码以初始化Stitch SDK。您的AppDelegate.swift中的application(_:didFinishLaunchWithOptions)方法可以用于此初始化步骤。确保导入import StitchCore
    do {
        try Stitch.initialize()
        
        _ = try Stitch.initializeDefaultAppClient(withConfigBuilder:
            StitchAppClientConfigurationBuilder.forApp(withClientAppID: "your-client-app-id")
        )
    } catch {
        print("Failed to initialize MongoDB Stitch iOS SDK: \(error.localizedDescription)")
        // note: This initialization will only fail if an incomplete configuration is 
        // passed to a client initialization method, or if a client for a particular 
        // app ID is initialized multiple times. See the documentation of the "Stitch" 
        // class for more details.
    }
  1. 要获取用于登录和与Stitch通信的客户端,使用Stitch.defaultAppClient
    // in a view controller's properties, for example
    private lazy var stitchClient = Stitch.defaultAppClient!
登录
  1. 我们启用了匿名登录,因此让我们用这个登录;在任何地方添加以下内容到您的代码中
let client = Stitch.defaultAppClient!

print("logging in anonymously")
client.auth.login(withCredential: AnonymousCredential()) { result in
        switch result {
        case .success(let user):
            print("logged in anonymous as user \(user.id)")
            DispatchQueue.main.async {
                // update UI accordingly
            }
        case .failure(let error):
            print("Failed to log in: \(error)")
        }
    }
  1. 现在通过前往XCode中的“产品”,然后“运行”(或按⌘R)来运行您的应用程序。
  2. 应用程序运行后,通过转到“查看”,“调试区域”,然后“显示调试区域”打开调试区域。
  3. 您应该会看到类似于以下内容的日志消息
logging in anonymously                                                    	
logged in anonymously as user 58c5d6ebb9ede022a3d75050
执行一个函数
  1. 登录成功后,执行函数将通过StitchClient的executeFunction()方法进行
    client.callFunction(
        withName: "echoArg", withArgs: ["Hello world!"], withRequestTimeout: 5.0
    ) { (result: StitchResult<String>) in
        switch result {
        case .success(let stringResult):
            print("String result: \(stringResult)")
        case .failure(let error):
            print("Error retrieving String: \(String(describing: error))")
        }
    }
  1. 如果你已经将你的Stitch应用程序配置为拥有名为"echoArg"的函数,它将返回其参数,你应该会看到一个类似的消息
String result: Hello world!
在不使用Stitch.defaultAppClient的情况下获取StitchAppClient

如果你不想通过设置资源值来设置单个默认初始化的StitchAppClient,可以使用以下方式,为多个应用程序ID初始化客户端,使用你想要的客户端应用ID的数量

    do {
        try Stitch.initialize()
        
        let client1 = try Stitch.initializeAppClient(withConfigBuilder:
            StitchAppClientConfigurationBuilder.forApp(withClientAppID: "your-first-client-app-id")
        )
        let client2 = try Stitch.initializeAppClient(withConfigBuilder:
            StitchAppClientConfigurationBuilder.forApp(withClientAppID: "your-second-client-app-id")
        )
    } catch {
        print("Failed to initialize MongoDB Stitch iOS SDK: \(error.localizedDescription)")
    }

你可以在这里或在应用中的任何其他地方使用上述的客户端

let client1 = try! Stitch.appClient(forAppID: "your-first-client-app-id")
let client2 = try! Stitch.appClient(forAppID: "your-second-client-app-id")