簡體   English   中英

Firebase 相同應用風格的多個項目的雲功能

[英]Firebase cloud functions for multiple projects at the same app flavor

在我的應用程序中,我正在處理多個 Firebase 項目,因為我需要我的數據庫在邏輯上按國家/地區分隔。

為此,我使用 FirebaseOptions 在運行時訪問來自不同 Firebase 項目的數據庫。

此外,在每個 Firebase 項目上,我分別部署了相同的雲 function。

問題是只有默認 Firebase 項目(在 google-services.json 文件中聲明的項目)的雲 function 正在工作。 似乎 FirebaseOptions 不影響雲功能的執行。

有人有線索嗎?

  • 重要的是要注意,我的應用程序中沒有針對每個國家/地區的不同口味。

解決方案

我只能向與特定發件人 ID 關聯的注冊令牌發送通知。 基本上,我試圖發送屬於其他項目的代幣。

為此,我應該允許多個項目向同一個客戶端應用程序發送消息。 要啟用此功能,我們需要確保我們擁有每個項目的發件人 ID。 請求注冊時,客戶端應用程序多次獲取令牌,每次使用令牌檢索方法在受眾字段中使用不同的發件人 ID。

換句話說,我們必須調用 getToken() 並傳遞發件人 ID 和簡單的“FCM”(例如 getToken("2xxxxx3344", "FCM"))作為參數。 還要確保為您需要的每個發件人(項目)調用它。

聽起來像是您的構建變體中的問題。

如果我是對的。 您可以使用 env-variables 和 >firebase use(cli 命令)來控制您的構建。

https://firebase.google.com/docs/functions/config-env#env-variables

初始化 FireBase-Admin-SDK。

https://firebase.google.com/docs/admin/setup#add_firebase_to_your_app

關於如何導入不同的 cred.json 文件的第一個想法。

import serviceAccountProd = require("./prodCred.json");
import serviceAccountDev = require("./devCred.json");

admin.initializeApp({
  credential: admin.credential.cert(
  development ? (serviceAccountDev as admin.ServiceAccount) : (serviceAccountProd as admin.ServiceAccount)),
  databaseURL: database,
  storageBucket: bucket,
});

我沒有完全實現它 - 隨意編輯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM