2017-09-18 3 views
0

Je suis en train de tester une application Web de connexion firebase avec DART angulaire dans le navigateur Chrome à localhost, mais en cliquant sur le sign-in la fenêtre de connexion a disparu en 1 sec et ne résulte pas avec succès s'identifier. En le testant sur Chromium, ça marche. Quelqu'un peut-il dire que dois-je faire pour résoudre ce problème?Firebase connexion avec AngularDart dans le navigateur Chrome

firebase_service.dart

import 'dart:async'; 
import 'package:angular/angular.dart'; 
import 'package:firebase/firebase.dart' as fb; 

@Injectable() 
class FirebaseService { 
    fb.User user; 
    fb.Auth _fbAuth; 
    fb.GoogleAuthProvider _fbGoogleAuthProvider; 

    FirebaseService() { 
    fb.initializeApp(
     apiKey: "AIzaSyBOShlCgUeqTL99n32bjWdNlkH1RPk9Xx4", 
     authDomain: "my-app.firebaseapp.com", 
     databaseURL: "https://my-app.firebaseio.com", 
     storageBucket: "my-app.appspot.com", 
    ); 

    _fbGoogleAuthProvider = new fb.GoogleAuthProvider(); 
    _fbAuth = fb.auth(); 
    _fbAuth.onAuthStateChanged.listen(_authChanged); 
    } 

    void _authChanged(fb.User event) { 
    user = event; 
    } 

    Future signIn() async { 
    try { 
     await _fbAuth.signInWithPopup(_fbGoogleAuthProvider); 
    } 
    catch (error) { 
     print("$runtimeType::login() -- $error"); 
    } 
    } 


    void signOut() { 
    _fbAuth.signOut(); 
    } 
} 

app_component.html

<header class="material-header shadow"> 
    <div class="material-header-row"> 
     <material-button icon 
         class="material-drawer-button" (trigger)="drawer.toggle()"> 
      <material-icon icon="menu"></material-icon> 
     </material-button> 
     <span class="material-header-title">{{appTitle}}</span> 
     <div class="material-spacer"></div> 
     <nav class="material-navigation"> 
      <material-button class="material-drawer-button" icon 
          materialTooltip="Notifications" 
          (trigger)=""> 
       <material-icon icon="notifications"></material-icon> 
      </material-button> 
      <div id="popup-sign-out" class="popup-user" *ngIf="fbService.user != null"> 
       <material-button class="material-drawer-button" icon 
           popupSource 
           #source="popupSource" 
           materialTooltip="More options" 
           (trigger)="basicPopupVisible = !basicPopupVisible"> 
        <material-icon icon="more_vert"></material-icon> 
       </material-button> 
       <material-popup defaultPopupSizeProvider 
           enforceSpaceConstraints 
           [source]="source" 
           [(visible)]="basicPopupVisible"> 
        <div header class="custom-header"> 
         <img id="popup-user-image" [src]="fbService.user?.photoURL"> 
         <div class="user-detail"> 
          <div id="user-name">{{fbService.user?.displayName}}</div> 
          <div id="email">{{fbService.user?.email}}</div> 
         </div> 
        </div> 

        <div group class="custom-popup-body"> 
         <material-list class="popup-list" size="3"> 
             <div group> 
           <material-list-item class="sign-out-button" 
                *ngIf="fbService.user != null" 
                (trigger)="fbService.signOut()"> 
            <material-icon icon="exit_to_app" [style.color]="iconColor" 
                class="material-list-item-primary" aria-hidden="true"> 
            </material-icon> 
            Sign out 
           </material-list-item> 
          </div> 

         </material-list> 
        </div> 
       </material-popup> 
      </div> 
     </nav> 
     <nav class="material-navigation"> 
       <div id="sign-in" class="user" *ngIf="fbService.user == null"> 
        <material-button raised class="sign-in-button" (trigger)="fbService.signIn()"> 
         <img class="google-icon" src="g-logo.png"/> 
         Sign In 
        </material-button> 
       </div> 

       <div id="sign-out" class="user" *ngIf="fbService.user != null"> 
        <img id="header-user-image" [src]="fbService.user?.photoURL"> 
       </div> 
     </nav> 
    </div> 
</header> 

app_component.dart

import 'package:angular/angular.dart'; 
import 'package:angular_components/angular_components.dart'; 
import 'package:yns_app/services/firebase_service.dart'; 

@Component(
    selector: 'my-app', 
     styleUrls: const [ 
    'app_component.css', 
'package:angular_components/src/components/app_layout/layout.scss.css', 
    ], 
    templateUrl: 'app_component.html', 
    directives: const [ 
    materialDirectives, 
    DeferredContentDirective, 
    MaterialButtonComponent, 
    MaterialIconComponent, 
    MaterialPersistentDrawerDirective, 
    MaterialToggleComponent, 
    MaterialListComponent, 
    MaterialListItemComponent, 
    ClickableTooltipTargetDirective, 
    DarkThemeDirective, 
    MaterialIconTooltipComponent, 
    MaterialInkTooltipComponent, 
    MaterialPaperTooltipComponent, 
    MaterialPopupComponent, 
    MaterialTooltipDirective, 
    MaterialTooltipTargetDirective, 
    MaterialTooltipSourceDirective, 
    NgIf, 
    Search, 
    NameGenerator, 
], 
    providers: const [ 
    materialProviders, 
    popupBindings, 
    DefaultPopupSizeProvider, 
    ], 
) 
class AppComponent { 
    final FirebaseService fbService; 
    bool basicPopupVisible = false; 
    bool end = false; 

    String get tooltipMsg => 'All the best messages appear in tooltips.'; 

    String get longString => 'Learn more about web development with AngularDart ' 
    'here. You will find tutorials to get you started.'; 

    AppComponent(FirebaseService this.fbService); 
} 

@Injectable() 
PopupSizeProvider createPopupSizeProvider() { 
    return const PercentagePopupSizeProvider(); 
} 

@Directive(selector: '[defaultPopupSizeProvider]', providers: const [ 
    const Provider(PopupSizeProvider, useFactory: createPopupSizeProvider) 
]) 
class DefaultPopupSizeProvider {} 

Répondre

0

connecter le domaine ou le sous-domaine au projet hébergé, sous l'hébergement section.