StitchCoreRemoteMongoDBService 版本 6.4.0

StitchCoreRemoteMongoDBService 版本 6.4.0

Jason FlaxEric DanielsAdam Chelminski 维护。



 
依赖
StitchCoreSDK= 6.4.0
StitchCoreLocalMongoDBService= 6.4.0
 

  • Jason Flax, Adam Chelminski 和 Eric Daniels 编写

iOS Swift 4.0 Apache 2.0 License Cocoapods compatible

MongoDB Stitch iOS/Swift SDK

MongoDB Stitch 官方 iOS/Swift SDK。

索引

文档

讨论

安装

Xcode/iOS

CocoaPods

CocoaPods是一个用于Cocoa项目的依赖关系管理器。您可以使用以下命令安装它

$ gem install cocoapods
  • 注意:需要CocoaPods 1.6.0+才能构建Stitch iOS SDK 5.0+。

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

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

target '<Your Target Name>' do
    # For core functionality and the Remote MongoDB Service
    pod 'StitchSDK', '= 6.4.0'

    # optional: for using the AWS service
    pod 'StitchSDK/StitchAWSService', '= 6.4.0'
    # optional: for using the Firebase Cloud Messaging service
    pod 'StitchSDK/StitchFCMService', '= 6.4.0'
    # optional: for using the HTTP service
    pod 'StitchSDK/StitchHTTPService', '= 6.4.0'
    # optional: for using the twilio service
    pod 'StitchSDK/StitchTwilioService', '= 6.4.0'
end

然后,运行以下命令

$ pod install

打开由pod install生成的.xcworkspace文件,以便使用所有必要的Stitch依赖项自动链接的项目。

示例用法

使用SDK创建新应用程序(iOS)

在Stitch上设置应用程序

  1. 转到https://stitch.mongodb.com/并登录MongoDB Atlas。
  2. 在您的项目中创建一个新应用程序,并输入您希望使用的名称。
  3. 通过在左侧面板中点击“Stitch”并点击您的应用程序,您可以在Atlas中访问您的Stitch应用程序。
  4. 将左侧面板顶部的Stitch应用程序ID复制下来。
  5. 通过在左侧面板中转到“用户”页面,选择“提供者”标签并启用“允许用户匿名登录”选项来启用匿名身份验证。

使用 Stitch 在 Xcode/CocoaPods 中搭建项目

  1. 下载并安装 Xcode

  2. 创建一个新应用项目,并设置你希望的项目名称。确保选择 Swift 作为编程语言。

  • 注意:iOS 11.0 是最低的 iOS 部署目标。
  1. 在命令行中 navigate 到项目目录,并运行 pod init
  2. 在生成的 Podfile 中,在你应用目标的依赖项下添加以下行
    pod 'StitchSDK', '= 6.4.0'

参考以上列表,在 Podfile 中添加你可能需要使用的可选 Stitch 服务 Pod。

  1. 运行 pod install
  2. 打开生成的 .xcworkspace 文件。你的应用项目将自动配置所有必要的依赖项,以便与 MongoDB Stitch 通信。
  3. 要使用基本 Stitch 功能,在源文件中导入 import StitchCore
  4. 要创建类似 ObjectId 的 BSON 文档和 BSON 值,在源文件中导入 import MongoSwift
  5. 要通过 Stitch 访问远程 MongoDB 实例,在源文件中导入 import StitchRemoteMongoDBService

使用 SDK

初始化 SDK

  1. 当你的应用初始化完成时,运行以下代码来初始化 Stitch SDK。在 AppDelegate.swift 中的 application(_:didFinishLaunchWithOptions) 方法中进行初始化步骤是合适的。确保导入 import StitchCore
    // at the top of the file
    import StitchCore

    // ...

    // in `application(_:didFinishLaunchWithOptions)`
    do {
        _ = try Stitch.initializeDefaultAppClient(
            withClientAppID: "your-client-app-id"
        )
        print("Successfully initialized default Stitch app client!");
    } catch {
        // 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.
        print("Failed to initialize MongoDB Stitch iOS SDK: \(error)")
    }
  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 中通过转到 Product,Run(或按 ⌘R)来运行你的应用。
  2. 当应用运行时,打开调试区域,转到 View,Debug Area,Show Debug Area。
  3. 你应该会看到类似以下日志消息
logging in anonymously                                                    	
logged in anonymously as user 58c5d6ebb9ede022a3d75050
执行一个函数
  1. 登录后,您可以使用StitchClient的callFunction()方法执行一个Stitch函数
    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"的函数,该函数返回其参数,即
// Stitch Function called 'echoArg'
exports = function(arg) {
  return arg;
};

那么您应该在Xcode调试区域看到一条消息

String result: Hello world!
获取不使用Stitch.defaultAppClient的StitchAppClient

如果不想有一个默认初始化的StitchAppClient,可以使用以下方法,为任意数量的客户端应用ID初始化客户端

    do {        
        let client1 = try Stitch.initializeAppClient(withClientAppID: "your-first-client-app-id")
        
        let client2 = try Stitch.initializeAppClient(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")