我有一個具有以下結構的 firebase 實時資料庫:

在我的應用程式中,用戶從產品中隨機獲得一個productId,同時從products 中洗掉productId并插入到consumerProducts 中,然后他用這個 id 連接到 firestore 并對物件進行更改。問題是,用戶在同一時間可以得到相同的productId而在產品,如果他們在同一時間訪問同一頁面。相反,我希望如果第一個獲得 id ,第二個將不會獲得相同的而是另一個。我怎么能解決這個問題?我見過使用事務https://firebase.google.com/docs/database/web/read-and-write#save_data_as_transactions 但這些僅用于在同一領域寫作的情況
uj5u.com熱心網友回復:
沒有辦法阻止多個用戶讀取資料庫中的同一個節點。如果需要,您需要在您控制的服務器上或在 Cloud Functions 或 Cloud Run 之類的東西上實作您自己的自定義 API。
但是,既然您說要將密鑰從 移動products到consumedProducts,您可能能夠在事務中捕獲該移動 - 并防止多個用戶將相同的密鑰寫入consumedProducts(他們同時也從 中洗掉products)。
Firebase-root在這種情況下,您需要在資料模型中運行事務,因此您可能需要考慮將這兩個節點移動到一個共同的祖先下,以防止在整個資料庫中發生爭用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/385232.html
