Flutter Firebase rtdb работает на Android, но не на iOS (snapshot.exists = false)IOS

Программируем под IOS
Ответить
Anonymous
 Flutter Firebase rtdb работает на Android, но не на iOS (snapshot.exists = false)

Сообщение Anonymous »

Я использую базу данных Flutter + Firebase Realtime для функции викторины.
Все работает правильно на Android, но на iOS то же чтение возвращает пустые данные (

Код: Выделить всё

snapshot.exists == false
) без каких-либо ошибок.
Что я делаю
Я перехожу к экрану и получаю боевые вопросы, например:

Код: Выделить всё

final snap = await FirebaseDatabase.instance
.ref('quizBattle/$roomId/questions')
.get();

print("exists = ${snap.exists}");
print("value = ${snap.value}");
Результат
  • ✅ Android → существует = true, данные возвращаются
  • ❌ iOS → существует = false, значение = null
  • ❌ Исключения не создаются
    Правила базы данных Firebase Realtime (соответствующие) часть)

    Код: Выделить всё

    "quizBattle": {
    ".read": true,
    ".write": "auth != null",
    "$battle_id": {
    ".read": "auth != null",
    "questions": {
    ".read": true,
    ".write": true
    }
    }
    }
    
    
Почему Android успешно считывает данные, но iOS автоматически завершает работу, даже если для дочернего .read установлено значение true?
Связано ли это с:
  • Порядком оценки правил Firebase?
  • Родительский файл .read блокирует дочернее чтение?
  • Firebase Auth не готов на iOS?
Как правильно структурировать правила RTDB, чтобы они надежно работали на обеих платформах?
Что я пробовал
  • Добавление .read: true по вопросам
  • Перезапуск приложения/очистка кеша
  • Проверка правильности пути и данных к базе данных
По-прежнему происходит сбой только на iOS.
Ожидаемое поведение
И Android, и iOS должны работать уметь читать:

Код: Выделить всё

quizBattle/{battleId}/questions
без необходимости аутентификации.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ists-false
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»