1

Я новичок в Angular & Firebase. В настоящее время я разрабатываю приложение для ионических приложений. Как-то я узнал, что для использования Firebase мне нужно настроить систему аутентификации (я предпочитаю Google).Миграция Firebase 2.x до 3.4.1 AngularJS Для Google OAuth

Непросто было интегрировать код в AngularJS, который упоминался на официальном сайте Firebase. Поэтому я просто взял чей-то рабочий код и заменил его URL-адрес базы данных Firebase на мой, я мог бы это сделать. Но это была ошибка.

Это неизменный код и его вывод (который работает как ожидалось).

index.html

<script src="lib/angularfire/dist/angularfire.min.js"></script> 
<script src="lib/firebase/firebase.js"></script> 

<!-- cordova script (this will be a 404 during development) --> 
<script src="cordova.js"></script> 

<!-- your app's js --> 
<script src="js/app.js"></script> 
<script src="js/controllers.js"></script> 
<script src="js/services.js"></script> 

app.js

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'firebase']) 

.constant('FirebaseUrl', 'https://ionicle.firebaseio.com/') 

.service('rootRef', ['FirebaseUrl', Firebase]) 

Так первый, я удалил его URL Firebase добавить мину и получил эту ошибку:

We have detected that you are using the v2.x or lower authentication SDKs with a project that was created at console.firebase.google.com. You must use the 3.0.0 or greater authentication SDKs with projects that have been created in the new console.

Тогда я обновленное firebase.js файл до версии 3.4.1. Тогда я получил Опорной ошибку в Dev консоли браузера: ReferenceError: Firebase не определен

.service('rootRef', ['FirebaseUrl', Firebase]) 

Так что я, наконец, нужно это работает Google OAuth с Firebase 3.x и AngularJS.

ответ

0

Хотя вы не указали достаточно примеров своего кода (инъекции зависимостей недостаточно), я думаю, что основная проблема, с которой вы сталкиваетесь, заключается в том, что вы используете старые примеры кода с новой версией Firebase.

вещи, как это:

var app = angular.module('app', ['firebase']); 
app.controller('Ctrl', function($scope, $firebaseAuth) { 
    var ref = new Firebase('https://...'); 
    $scope.authObj = $firebaseAuth(ref); 
    ... 
}); 

изменяемые в это:

var app = angular.module('app', ['firebase']); 
app.controller('Ctrl', function($scope, $firebaseAuth) { 

    var config = { 
     apiKey: "***", 
     authDomain: "***.firebaseapp.com", 
     databaseURL: "https://***.firebaseio.com", 
     storageBucket: "***.appspot.com", 
     messagingSenderId: "***" 
    }; 
    firebase.initializeApp(config); 

    $scope.authObj = $firebaseAuth(firebase.auth()); 
    ... 
}); 

Тогда на что authObj вы можете добавить поставщика для клиента, который необходимо использовать для аутентификации (Google/GitHub/Facebook ...):

var provider = new firebase.auth.GoogleAuthProvider(); 
$scope.authObj.$signInWithPopup(provider).then(function(result) { 
    console.log(result); 
}); 

Имейте в виду, что вы должны включить проверку подлинности с помощью Google (или любого другого поставщика) в консоли Firebase. Подробные инструкции см. В этом link.

+0

Это сработало, спасибо –

+0

Нет проблем, пожалуйста, проголосуйте за ответ, если это полезно. –

Смежные вопросы