2017-06-26 74 views
1

我在客戶端使用Couchbase Lite開發應用程序,在服務器端使用Couchbase Sync Gateway。使用Couchbase Lite和Sync Gateway,如何從撤銷的渠道中刪除文檔?

在服務器端,我管理「訪問授權」文檔。當創建這樣的文檔時,該文檔中給出的用戶被授權訪問頻道。顯然,當這樣的文件被刪除時,訪問授權被撤銷。事實確實如此,除了一點。

假設我有一個文檔發佈在我的用戶被授權訪問的頻道中。然後我刪除文件。根據Couchbase文檔,一旦文檔被刪除,用戶就無法再訪問訪問授權中指定的頻道。

不幸的是,發佈到該頻道的文檔已經與用戶的couchbase lite數據庫同步。因此我的問題是:我希望將與用戶沒有更多訪問權的頻道相關的文檔從couchbase lite中刪除。但我該怎麼做?似乎複製或lvie查詢都不能允許這樣做。那麼,是否有一個特定的機制可以讓我接受這種事件?有沒有我不知道的API?

回答

1

文檔被分配到通道。用戶可以訪問頻道。

如果文檔從通道中刪除,則該事件將同步到客戶端。

目前不支持通知客戶端它已失去對文檔的訪問權限,因爲它失去了從頻道讀取的權限。

這是一個難題。例如,由於可以將文檔分配給多個通道,因此撤銷對通道(甚至一組通道)的訪問並不意味着客戶端不再能夠訪問該文檔。

要了解解決此問題的兩種可能方法,請參閱this GitHub issue comment series

0

您可以創建一個webhook服務,該服務可以在刪除文檔時運行,並作爲Lambda服務或類似的東西運行,或者在您自己的應用程序服務器上運行。無論何時刪除文檔,您都可以從sync_gateway用戶刪除頻道。 對於couchbase同步網關的網絡掛接文檔,請點擊這裏:https://developer.couchbase.com/documentation/mobile/current/guides/sync-gateway/server-integration/index.html

我知道這是一個較長的過程,應該有更好的方式來做到這一點,但是,這是我能想到的唯一解決方案。

+0

這種方法的難點在於我想刪除Couchbase Lite上的文檔,而不是Couchbase Server上的文檔。 – Riduidel

相關問題