2016-09-20 9 views
0

Я делаю приложение Android, которое будет собирать полезную информацию у пользователя. Вот кодКак установить правила безопасности базы данных Firebase для Android-приложения

Firebase postRef = mRef.child("marks"); 
Map<String, String> marks = new HashMap<String, String>(); 
marks.put("Name", fname); 
marks.put("Phone", fphone); 
marks.put("Year", fyear); 
marks.put("Email", femail); 
String uid=postRef.getKey(); 
Toast.makeText(im.this,"Thanks!",Toast.LENGTH_LONG).show(); 

Это приведет к получению данных от каждого пользователя моего приложения для Android. Как установить определенные правила, по которым только аутентифицированные пользователи могут получить доступ к своей информации. Не другие пользователи.

Я попробовал это в Firebase правил:

{ 
    "rules":{ 
    "$uid":{ 
    ".read":"auth.uid==$uid", 
    ".write":"auth.uid==$uid", 
    ".validate":"newData.hasChildren(['uid','Email','Name'])" 
    } 
    } 

} 

но не работает. Пожалуйста, скажите мне конкретное решение.

+0

Правила выглядят прекрасно, чтобы пользователи могли получать доступ только к своим данным. Код, который вы использовали, не читается и не записывается в базу данных, поэтому не может быть неудачным. В чем проблема? –

+0

Спасибо alot Frank за то, что вы ищете! В реальной базе данных UID не существует. Вот логарифм. '09 -21 00: 36: 03.971 31112-31223/com.example.amey.ilsalpha V/RenderScript: 0x559eaba9c0 Запуск ниток, процессоров 6 09-21 00: 36: 04.413 31112-31465/com.example .amey.ilsalpha W/RepoOperation: setValue at/marks/-KS7zP1oKI0WmcikjO1G не удалось: FirebaseError: Permission denied ' – coolamz

ответ

1

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

{ 
"rules":{ 
    "marks":{ 
    "$uid":{ 
     ".read":"auth.uid==$uid", 
     ".write":"auth.uid==$uid", 
     ".validate":"newData.hasChildren(['uid','Email','Name'])" 
     } 
    } 
    } 
} 
+0

Спасибо Андре! Но все же его не работает! Хотя это помогло много читать. Но нужно решение для записи. – coolamz

+0

@coolamz Вы должны добавить код, который используете, чтобы написать свой вопрос. –

+0

Приношу свои извинения! Его первый вопрос здесь! Вот текущий код: { "правила": { "знаки": { "$ UID": { ".read ":" auth.uid == $ UID", ".WRITE": правда , ".validate": "newData.hasChildren (['Email', 'Name'])" } } } } – coolamz

Смежные вопросы