firebase - Firebase Cloud Functions 与 Firebase 移动原生 SDK
问题描述
我打算将 Firebase Cloud Firestore 用于我的原生 iOS 和 Android 应用程序。我想知道哪种方法更有意义:
选项 1) 使用 Firebase iOS 和 Android 原生 SDK 添加数据
或者
选项 2) 使用 Cloud Functions (nodejs) 添加数据,并将其公开为 iOS 和 Android 设备的 REST API 以调用它。这会更容易维护吗?
在 iOS 中:
// Add a new document in collection "cities"
db.collection("cities").document("LA").setData([
"name": "Los Angeles",
"state": "CA",
"country": "USA"
]) { err in
if let err = err {
print("Error writing document: \(err)")
} else {
print("Document successfully written!")
}
}
在安卓中:
Map<String, Object> city = new HashMap<>();
city.put("name", "Los Angeles");
city.put("state", "CA");
city.put("country", "USA");
db.collection("cities").document("LA")
.set(city)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d(TAG, "DocumentSnapshot successfully written!");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "Error writing document", e);
}
});
在 Node.js 中
var data = {
name: 'Los Angeles',
state: 'CA',
country: 'USA'
};
// Add a new document in collection "cities" with ID 'LA'
var setDoc = db.collection('cities').doc('LA').set(data);
解决方案
这取决于哪一个更适合你。但是,使用 Firebase Cloud Firestore 原生 SDK 将为您提供到服务器的直接客户端连接,您将在其中直接与 API 交互。这些教程对 Android 和 iOS 开发都有很好的记录。否则,您将不得不公开一个 HTTP 云函数,每次您想要与数据库进行交互时都会触发该函数。
另请记住,Cloud Functions 有自己的执行时间和延迟,基于Memory allocation
. 这意味着,使用直接 Firestore 原生 SDK 比通过 Cloud Function 快得多,并且您还可以直接从应用程序中捕获可能的错误,而不必读取 Cloud Function 的 LOG。
推荐阅读
- html - 如何(搜索)并将特定数据(按 id)加载到动态创建的行中,使用 node.js
- salesforce - 自定义 Salesforce Lightning 应用程序提供“您无权访问此记录”
- flutter - 如何在颤振地图上获取标记纬度和经度?
- javascript - 如何在 javascript 中导入 papaparse?
- python - 如何在 django 中正确断言 IntegrityError?
- java - SpringBoot 存储库发现响应时间随着许多并发调用而增加,而手动数据库搜索不受影响
- flutter - 如何在 Flutter 中定义自定义 BorderRadius 类?
- azure - 使用 JWT 令牌连接字符串问题的 Active Directory 身份验证
- asp.net-core - Google App Engine Flex - ASP.net 核心 2.1
- haskell - readMaybe的免费版本