MongoDB Stitch iOS/Swift SDK
官方的 iOS/Swift 版本的 MongoDB Stitch SDK。
索引
文档
讨论
安装
XCode/iOS
CocoaPods
CocoaPods是一个用于Cocoa项目的依赖关系管理器。您可以使用以下命令来安装它:
$ gem install cocoapods
CocoaPods 1.1.0+版本是建设Stitch iOS 4.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', '= 5.0.0-beta.3'
# optional: for using the AWS service
pod 'StitchSDK/StitchAWSService', '= 5.0.0-beta.3'
# optional: for using the Firebase Cloud Messaging service
pod 'StitchSDK/StitchFCMService', '= 5.0.0-beta.3'
# optional: for using the HTTP service
pod 'StitchSDK/StitchHTTPService', '= 5.0.0-beta.3'
# optional: for using the twilio service
pod 'StitchSDK/StitchTwilioService', '= 5.0.0-beta.3'
end
然后,运行以下命令:
$ pod install
打开由pod install
生成的.xcworkspace
文件,以访问包含所有必要Stitch依赖项的项目。
示例用法
使用SDK创建新应用(iOS)
在Stitch上设置应用
- 访问https://stitch.mongodb.com/并登录MongoDB Atlas。
- 在项目中创建一个具有您想使用的名称的新应用。
- 通过在左侧面板中点击Stitch Apps并点击您的应用,在Stitch中访问您的应用。
- 通过在左侧面板中转到Clients并点击App ID部分,复制您的应用的客户端应用ID。
- 通过在左侧面板中转到Users并在Providers中编辑,启用“允许用户匿名登录”。
在 XCode/CocoaPods 中使用 Stitch 设定项目
- 下载并安装 XCode
- 使用您希望的名字创建一个新的应用程序项目。确保选择 Swift 作为语言。
- 在命令行中导航到项目目录,并运行
pod init
。 - 在生成的
Podfile
中,在应用程序目标的依赖关系下添加以下行
pod 'StitchSDK', '= 5.0.0-beta.3'
- 运行
pod install
- 打开生成的
.xcworkspace
文件 - 您的应用程序项目将配置所有必要的依赖项,以与 MongoDB Stitch 进行通信。
- 要使用基本 Stitch 功能,在源文件中导入
import StitchCore
。 - 要访问通过 Stitch 访问的远程 MongoDB 实例,在源文件中导入
import StitchRemoteMongoDBService
。
使用 SDK
初始化 SDK
- 当您的应用程序初始化时,运行以下代码以初始化 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"
)
} catch {
print("Failed to initialize MongoDB Stitch iOS SDK: \(error)")
// 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.
}
- 要获取一个用于登录和与 Stitch 通信的客户端,使用
Stitch.defaultAppClient
。
// in a view controller's properties, for example
private lazy var stitchClient = Stitch.defaultAppClient!
登录
- 我们启用了匿名登录,所以使用它进行登录;在您的代码的任何位置添加以下内容
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)")
}
}
- 现在通过在 XCode 中转到 Product,Run(或按 ⌘R)来运行您的应用程序。
- 应用程序运行后,通过转到 View,Debug Area,Show Debug Area 打开调试区域。
- 您应该看到如下日志信息
logging in anonymously
logged in anonymously as user 58c5d6ebb9ede022a3d75050
执行一个函数
- 一旦登录,执行函数将通过 StitchClient 的
callFunction()
方法进行。
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))")
}
}
- 如果您已将您的 Stitch 应用程序配置为有一个名为 "echoArg" 并且返回其参数的函数,您应该会看到一个类似于以下的消息
String result: Hello world!
在没有使用 Stitch.defaultAppClient 的情况下获取 StitchAppClient
如果您不希望使用单个默认初始化的 StitchAppClient,则可以使用以下方法为多个 App ID 初始化客户端,并使用任何数量的客户端 App 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")