# πŸ“ Настройка Π°Π΄ΠΌΠΈΠ½ΠΎΠ² Π² Firestore ## Админы NANAXE CRM ### Email Π°Π΄ΠΌΠΈΠ½ΠΎΠ²: 1. `almalexyz@gmail.com` 2. `ormix16@gmail.com` ## Как Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π°Π΄ΠΌΠΈΠ½Π°: ### Бпособ 1: Π§Π΅Ρ€Π΅Π· Firebase Console 1. ΠžΡ‚ΠΊΡ€ΠΎΠΉ https://console.firebase.google.com/project/nanax26-1f33b/firestore 2. Найди ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ `users` 3. Найди Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ email 4. ИзмСни ΠΏΠΎΠ»Π΅ `role` Π½Π° `"admin"` ### Бпособ 2: Π§Π΅Ρ€Π΅Π· Firestore запрос ```javascript // Π’ Firebase Console β†’ Firestore β†’ Start collection db.collection('users').where('email', '==', 'almalexyz@gmail.com').get() .then(snapshot => { snapshot.docs.forEach(doc => { doc.ref.update({ role: 'admin' }); }); }); db.collection('users').where('email', '==', 'ormix16@gmail.com').get() .then(snapshot => { snapshot.docs.forEach(doc => { doc.ref.update({ role: 'admin' }); }); }); ``` ### Бпособ 3: Π§Π΅Ρ€Π΅Π· Cloud Functions (автоматичСски) ```javascript exports.setOnAdminLogin = functions.auth.user().onCreate(async (user) => { const adminEmails = ['almalexyz@gmail.com', 'ormix16@gmail.com']; if (adminEmails.includes(user.email)) { await admin.firestore().collection('users').doc(user.uid).update({ role: 'admin' }); } }); ``` ## ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€ΠΎΠ»ΠΈ: Π’ ΠΊΠΎΠ΄Π΅ прилоТСния: ```dart final user = ref.watch(currentUserProvider); if (user?.isAdmin ?? false) { // ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π΄ΠΌΠΈΠ½ΠΊΡƒ } ``` ## Π ΠΎΠ»ΠΈ: - `admin` - ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊΠΎ всСм функциям - `member` - созданиС Π·Π°Π΄Π°Ρ‡, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ своих - `viewer` - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ просмотр