如何:
的結構:
posts
post_id_0
msg: "a post about posting"
post_id_1
msg: "a post about pizza"
和用戶節點
users
uid_0
name: "biff"
post_activity
post_id_0
last_activity: "20170128100200"
僞代碼,因爲我們不知道該平臺
顯示器職位表中的
a post about posting
a post about pizza
用戶敲擊或點擊「後約發佈」在代碼 一個列表,獲得最後的活動,今天這是在上午10:02
lastActivity = uid_0/post_activity/post_id_0/last_activity
並且然後與當前時間的最後一項活動,如果它已經訪問不到一分鐘前,不允許他們再次
let currentTimestamp = current time (say it's 10:04 am)
if currentTimestamp - lastActivity > 1 minute then
show post details
update the lastActivity node to current timestamp
else
print("Posts can only be reviewed every minute")
讀它在這種情況下,最後一次後W¯¯如2分鐘前閱讀,所以允許再次閱讀。如果不到一分鐘,它將被拒絕。另外,如果用戶點擊/點擊post_id_1,則不會發現發佈活動,這意味着用戶以前從未查看過該活動;在這種情況下,將其添加到uid_0/post_activity節點。
相同的技術可以與計數器一起使用,而不是限制用戶閱讀帖子的次數。
來源
2017-01-29 15:10:29
Jay
由於安全規則中沒有最後讀取時間[預定義變量](https://firebase.google.com/docs/database/security),我無法看到通過安全規則如何實現這一點。 /固定數據#predefined_variables)。 – cartant
Firebase是否有一些固有的速率限制? – shell
不是我所知道的,但那不算太多。看看是否有某種限制方法會很有趣。 – cartant