191 lines
5.0 KiB
Markdown
191 lines
5.0 KiB
Markdown
# ✅ Настройка Firebase завершена!
|
||
|
||
## 📦 Что сделано:
|
||
|
||
### 1. Gradle настроен правильно ✅
|
||
- **Kotlin DSL** (`build.gradle.kts`) — современный подход
|
||
- **Google Services Plugin** версии 4.4.4 добавлен
|
||
- **Firebase BoM** версии 34.11.0 подключён
|
||
- Все Firebase зависимости добавлены:
|
||
- `firebase-analytics`
|
||
- `firebase-auth`
|
||
- `firebase-firestore`
|
||
- `firebase-messaging`
|
||
|
||
### 2. Package name ✅
|
||
- Application ID: `com.nanaxe.nanaxe_crm`
|
||
- Соответствует `google-services.json`
|
||
|
||
### 3. AndroidManifest обновлён ✅
|
||
- Добавлены разрешения для Firebase и уведомлений
|
||
- Название приложения: "NANAXE CRM"
|
||
|
||
### 4. Правила безопасности Firestore ✅
|
||
- Файл `firestore.rules` создан
|
||
- Доступ только для аутентифицированных пользователей
|
||
- Поддержка ролей (admin, member, viewer)
|
||
|
||
---
|
||
|
||
## 🚀 СЛЕДУЮЩИЙ ШАГ: Загрузить правила безопасности
|
||
|
||
### Открой Firebase Console:
|
||
1. Перейди в https://console.firebase.google.com
|
||
2. Выбери проект `nanax26-1f33b`
|
||
3. Слева: **Build** → **Firestore Database**
|
||
4. Вверху выбери вкладку **Rules**
|
||
5. Скопируй содержимое файла `firestore.rules` и вставь в редактор
|
||
6. Нажми **Publish**
|
||
|
||
**Или используй Firebase CLI:**
|
||
```bash
|
||
npm install -g firebase-tools
|
||
firebase login
|
||
firebase use nanax26-1f33b
|
||
firebase deploy --only firestore:rules
|
||
```
|
||
|
||
---
|
||
|
||
## 📱 Запуск приложения
|
||
|
||
### 1. Подключи устройство или запусти эмулятор
|
||
```bash
|
||
# Проверка подключенных устройств
|
||
flutter devices
|
||
```
|
||
|
||
### 2. Запусти приложение
|
||
```bash
|
||
flutter run
|
||
```
|
||
|
||
### 3. Если ошибка с SHA-1 ключом
|
||
Для Google Sign-In нужен SHA-1 fingerprint:
|
||
|
||
```bash
|
||
# Для debug ключа (Windows)
|
||
cd android
|
||
gradlew app:signingReport
|
||
```
|
||
|
||
Скопируй SHA-1 из отчёта и добавь в Firebase Console:
|
||
1. Project Settings → Your apps → Android app
|
||
2. Add fingerprint
|
||
3. Вставь SHA-1
|
||
4. Save
|
||
|
||
---
|
||
|
||
## 🔧 Проверка работы
|
||
|
||
### Чек-лист:
|
||
- [ ] Firebase проект создан
|
||
- [ ] Authentication включён (Google provider)
|
||
- [ ] Firestore база создана (region: eur3)
|
||
- [ ] Android приложение зарегистрировано
|
||
- [ ] `google-services.json` лежит в `android/app/`
|
||
- [ ] Gradle файлы обновлены
|
||
- [ ] Правила безопасности загружены в Firebase
|
||
- [ ] SHA-1 fingerprint добавлен (для Google Sign-In)
|
||
|
||
### Тест аутентификации:
|
||
1. Запусти приложение
|
||
2. Нажми "Войти через Google"
|
||
3. Выбери аккаунт
|
||
4. Если успешно — переход на главный экран ✅
|
||
|
||
---
|
||
|
||
## 📊 Структура Firestore (автоматически создаётся)
|
||
|
||
```
|
||
users/
|
||
└─ {userId}/
|
||
├─ email
|
||
├─ displayName
|
||
├─ role: "member"
|
||
├─ teamIds: []
|
||
└─ settings: {}
|
||
|
||
teams/
|
||
└─ {teamId}/
|
||
├─ name
|
||
├─ memberIds: []
|
||
└─ projects: subcollection
|
||
|
||
projects/
|
||
└─ {projectId}/
|
||
├─ name
|
||
├─ ownerId
|
||
└─ tasks: subcollection
|
||
|
||
tasks/
|
||
└─ {taskId}/
|
||
├─ title
|
||
├─ status: "todo"
|
||
├─ priority: "medium"
|
||
└─ assigneeId
|
||
|
||
mindmaps/
|
||
└─ {projectId}/
|
||
└─ nodes/
|
||
└─ {nodeId}/
|
||
├─ title
|
||
├─ level
|
||
└─ parentId
|
||
|
||
events/
|
||
└─ {eventId}/
|
||
├─ title
|
||
├─ startTime
|
||
└─ attendeeIds
|
||
|
||
alarms/
|
||
└─ {alarmId}/
|
||
├─ title
|
||
├─ dateTime
|
||
└─ isRepeating
|
||
```
|
||
|
||
---
|
||
|
||
## 🆘 Возможные ошибки
|
||
|
||
### "No Firebase App"
|
||
```
|
||
Проверь что google-services.json лежит в android/app/
|
||
```
|
||
|
||
### "Sign-in failed"
|
||
```
|
||
1. Добавь SHA-1 fingerprint в Firebase Console
|
||
2. Перескачай google-services.json
|
||
3. Пересобери приложение: flutter clean && flutter run
|
||
```
|
||
|
||
### "Permission denied"
|
||
```
|
||
1. Проверь что правила безопасности загружены
|
||
2. Убедись что пользователь аутентифицирован
|
||
```
|
||
|
||
### "App not found"
|
||
```
|
||
1. Проверь что package name совпадает:
|
||
- В google-services.json: "com.nanaxe.nanaxe_crm"
|
||
- В build.gradle.kts: applicationId = "com.nanaxe.nanaxe_crm"
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 Документация
|
||
|
||
- [Firebase Flutter Setup](https://firebase.flutter.dev/docs/overview)
|
||
- [Firestore Rules](https://firebase.google.com/docs/firestore/security/get-started)
|
||
- [Google Sign-In Flutter](https://pub.dev/packages/google_sign_in)
|
||
|
||
---
|
||
|
||
**Готово! Запускай `flutter run`** 🚀
|