2017-01-30 7 views
0

Я решил использовать Firebase в старом объективном приложении C iOS.Настройки правил Firebase

Я установил то, что мне нужно, в соответствии с инструкциями, приведенными здесь: Add Firebase to your iOS app сразу после входа в Firebase. Затем я выполнил следующие инструкции: https://firebase.google.com/docs/database/ для работы с базой данных.

На данный момент это в основном работает, я могу написать некоторые данные. Тем не менее у меня есть проблема с настройками правил.

Я следовал за информацию, представленную здесь: https://firebase.google.com/docs/database/security/quickstart

Но если я устанавливаю свои правила, как это:

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

это работает, как ожидалось. С другой стороны, если установить их так:

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 

который по умолчанию и должны позволить мне писать данные из моего приложения, он не работает.

В чем проблема?

+0

Это звучит как пользователь не будет подписан в – cartant

+0

OK.. Похоже, я не совсем понял, что я читал. На самом деле я снова вижу, что ты прав. Я хотел бы, чтобы мое приложение (но только это приложение) имело возможность получить доступ к БД для записи и чтения, кем бы это ни был пользователь, но я также хотел бы сделать это без запроса пользователя для входа в систему. Это возможно? – Michel

+0

Доступ предоставляется пользователям, а не конкретному приложению. См. Http://stackoverflow.com/questions/18005984/how-to-prevent-other-access-to-my-firebase –

ответ

1

Если вы не хотите, чтобы пользователь входил в систему, вы можете автоматически аутентифицировать пользователя анонимно.

Authenticate with Firebase Anonymously on iOS

Тогда вы могли бы использовать:

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 
0

После прочтения ваш комментарий в ответ на cartant, то ясно, что вы хотите, чтобы разрешить пользователям приложению доступ к database для чтения и записи, без необходимости входа в систему.

Я также хотел бы сделайте это без запроса пользователя для входа в систему. Это возможно?

ДА

можно разрешить пользователям получить доступ к БД без какого-либо процесса подписания.

На самом деле

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

это правило говорит, что вы предоставляете read и write разрешение вашего пользователя без входа в систему.

С другой стороны

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 

в этом правиле вы отметив, что ваша аутентификация ("auth != null") должна быть выполнена до предоставления read, write разрешений для вашего пользователя.

Для достижения вашей цели просто используйте правило правила i.e без аутентификации.

+0

Действительно, как уже упоминалось в начале сообщения, у меня уже есть эта работа. Но в этом случае я даю полный доступ ко всему слову. Это слишком много. Только одно примечание: ЭТО НЕ является правилом по умолчанию. – Michel