Firebase - разрешить пользователю доступ к частям базы данных на основе информации о базе данных

Я нашел это в качестве решения:

#make a list of the lables you want
lab<-  c("1990\nn=26", "1991\nn=29", "1992\nn=30", "1993\nn=32", "1994\nn=36", "1995\nn=35", "1996\nn=33", "1997\nn=38", "1998\nn=36", "1999\nn=39", "2000\nn=39", "2001\nn=40", "2002\nn=38", "2003\nn=40", "2004\nn=39", "2005\nn=41", "2006\nn=42", "2007\nn=43", "2008\nn=44", "2009\nn=41", "2010\nn=41", "2011\nn=41", "2012\nn=42") 
lab<-  as.factor(lab)

#bind our label list to our table
by_year<-cbind(lab, by_year)

#make a column of zeros to group by for the line
by_year$g<- 0

# Standard error of the mean
  across_time<- ggplot(by_year, aes(x=lab, y=value)) + 
         geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.4) +
         geom_line(aes(group=g), colour="black", size= 2) + #notice the grouping
         geom_point(size=4, shape=21, fill="white") +  # 21 is filled circle
         scale_x_discrete(labels = by_year$lab) + # discrete not continuous 
         xlab("Year & Number of Reporting Countries") +
         ylab("Total Annual Seizures") +  
         ggtitle("Heterogeneity of Heroin Seizures in Europe") 
across_time

Вот окончательный результат:

[/g0]

0
задан cubetastic 13 July 2018 в 18:32
поделиться

1 ответ

У меня возникли проблемы с пониманием вашей проблемы, если это не то, что вы ищете, отредактируйте свой вопрос и объясните, что вы ищете более подробно.

Если вы хотите ограничить доступ к «Некоторое имя» только тем пользователям, которые имеют этот доступ, предоставленный в таблице «Пользователи», вы можете написать правило, которое ищет разрешение «Some Name» под этим пользователем. Это правило будет применяться ко всем пользователям вашего приложения, поэтому любой пользователь, имеющий предоставленный доступ, сможет получить доступ к этим данным.

Ваше правило будет выглядеть так:

{
  "rules": {

    "Stuff": {
      "$someName": {
        ".read": "root.child('Users').child(auth.uid).child('accesTo').val() == $someName"
      }
    },

    // ...etc... other rules for other tables in your database

}

В документации есть много примеров такого рода .

3
ответ дан JeremyW 17 August 2018 в 12:20
поделиться
  • 1
    Это выглядит на месте. Отличный ответ Джереми! – Frank van Puffelen 13 July 2018 в 17:49
  • 2
    Мне очень жаль - я допустил небольшую ошибку в структуре базы данных - у пользователя есть несколько вещей, к которым он может получить доступ, и все они являются ключевыми именами, и поэтому мне нужно проверить, соответствует ли какое-либо одно ключевое имя. Как мне это сделать? – cubetastic 13 July 2018 в 18:34
  • 3
    Затем вы можете использовать .hasChild(), чтобы узнать, указан ли этот пользователь: ".read": "root.child('Users').child(auth.uid).child('accesTo').hasChild($someName) – JeremyW 13 July 2018 в 18:43
  • 4
    Вау, спасибо большое! Оно работает! И не могли бы вы отредактировать свой ответ? Потому что я редактировал вопрос ... – cubetastic 14 July 2018 в 02:01
Другие вопросы по тегам:

Похожие вопросы: