首页 > 解决方案 > 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);

标签: firebasegoogle-cloud-functions

解决方案


这取决于哪一个更适合你。但是,使用 Firebase Cloud Firestore 原生 SDK 将为您提供到服务器的直接客户端连接,您将在其中直接与 API 交互。这些教程对 Android 和 iOS 开发都有很好的记录。否则,您将不得不公开一个 HTTP 云函数,每次您想要与数据库进行交互时都会触发该函数。

另请记住,Cloud Functions 有自己的执行时间和延迟,基于Memory allocation. 这意味着,使用直接 Firestore 原生 SDK 比通过 Cloud Function 快得多,并且您还可以直接从应用程序中捕获可能的错误,而不必读取 Cloud Function 的 LOG。


推荐阅读