Merhaba, Bir firmada çalışan tüm personele bildirim göndermek için bir uygulama yapıyorum. Personel işten çıktığında bildirim göndermeye devam etmemek için authentication sistemi kuruyorum. Fakat çalışan kişi kendisi kayıt olmayacak. Yetkisi olan bir kaç kişi çalışan için uygulama içerisinden kullanıcı oluşturacak. Fakat şöyle bir sorunum var. Yetkili kullanıcı uygulamaya kullanıcı adı ve şifresiyle giriş yapıyor. Daha sonra butona tıklayarak kullanıcı ekleme menüsüne gidiyor. Eğer kullanıcı yetkili değilse, kullanıcı ekleme menüsü onda gözükmeyecek. Kullanıcı ekleme menüsünde firebase create metodu ile kullanıcı ekliyorum. Buraya kadar bir sıkıntı yok. Fakat kullanıcı oluşturulduğu anda otomatik olarak girişte yaptığı için yetkili kullanıcıdan çıkıp diğer kullanıcının hesabına giriş yapılmış oluyor. Bu sorunu nasıl çözebilirim? Teşekkürler.

  • HseyinAkkaya replied to this.
    • ahmetkrakaya Buna bir çözüm olarak ikincil bir instance oluşturarak user create etme örnekleri var. Böylece asıl firebase oturumunuz etkilenmeden ikinci instance üzerinde işlem yapabilirsiniz. Örnek kod şu şekilde;

       Future signUpWithEmailPasswordAdminPastor(String email, String password, String role, String nama, String keuskupan, String kevikepan, String paroki) async {
      try {
      
        FirebaseApp tempApp = await Firebase.initializeApp(name: 'temporaryregister', options: Firebase.app().options);
      
        UserCredential result = await FirebaseAuth.instanceFor(app: tempApp).createUserWithEmailAndPassword(
            email: email, password: password);
      
        // create a new document user for the user with uid
        await DatabaseService(uid: result.user.uid).updateUserDataSelf(
            true,
            role,
            nama,
            keuskupan,
            kevikepan,
            paroki,
            '',
            DateTime.now(),
            DateTime.now());
      
        tempApp.delete();
        return 'OK';
      } catch (e) {
        print(e.toString());
        return null;
      }
      }

      kaynak : [https://stackoverflow.com/a/64258979]

    ahmetkrakaya Buna bir çözüm olarak ikincil bir instance oluşturarak user create etme örnekleri var. Böylece asıl firebase oturumunuz etkilenmeden ikinci instance üzerinde işlem yapabilirsiniz. Örnek kod şu şekilde;

     Future signUpWithEmailPasswordAdminPastor(String email, String password, String role, String nama, String keuskupan, String kevikepan, String paroki) async {
    try {
    
      FirebaseApp tempApp = await Firebase.initializeApp(name: 'temporaryregister', options: Firebase.app().options);
    
      UserCredential result = await FirebaseAuth.instanceFor(app: tempApp).createUserWithEmailAndPassword(
          email: email, password: password);
    
      // create a new document user for the user with uid
      await DatabaseService(uid: result.user.uid).updateUserDataSelf(
          true,
          role,
          nama,
          keuskupan,
          kevikepan,
          paroki,
          '',
          DateTime.now(),
          DateTime.now());
    
      tempApp.delete();
      return 'OK';
    } catch (e) {
      print(e.toString());
      return null;
    }
    }

    kaynak : [https://stackoverflow.com/a/64258979]

      Write a Reply...