firebaseが大幅に更新されて以来、基本的な質問に対する答えを見つけることはほとんど不可能でした。彼らのドキュメントを使ってさえ。IonicとFirebaseの自動ログイン
私の質問は、ユーザーが自分のアプリに一度サインインして、無期限に、または一定時間ログインしたままにすることです。
ユーザーがログインすると、データにアクセスするにはどうすればよいですか?名字のように?データベースを作成して、何らかの形でユーザーIDにリンクする必要がありますか?
firebase.auth()。signInWithEmailAndPassword(email、password)はfirebase URLを提供していないため、どのように動作するか分かりません。それは、インデックスページ上の設定objからそれを引っ張っているのですか?ここで
は私の角度コードです:ログインに滞在永遠
appControllers.controller('userCtrl', ['$scope', '$rootScope', '$ionicPlatform', '$cordovaDevice', '$mdToast', '$mdBottomSheet', '$timeout', '$stateParams', '$state', 'LogIn', 'SignUp', '$http', '$firebaseAuth',
function($scope, $rootScope, $ionicPlatform, $cordovaDevice, $mdToast, $mdBottomSheet, $timeout, $stateParams, $state, LogIn, SignUp, $http, $firebaseAuth) {
var devid;
$scope.id = "1";
$scope.errorMsg = "";
// timeout to get device ID
$timeout(function() {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(device.cordova);
$scope.id = $cordovaDevice.getUUID();
return $scope.id;
}
}, 1000);
// watches change in DEVID
$scope.updateID = function() {
devid = $scope.id;
console.log(devid);
return devid;
};
$scope.initialForm = function() {
$scope.moveBox = function() {
// $("#signupbox").fadeOut();
$('#signupbox').animate({
'marginTop': "+=170px" //moves down
});
$timeout(function() {
$state.go('app.signup');
}, 500);
$timeout(function() {
$('#signupbox').animate({
'marginTop': "-=170px" //moves down
});
}, 1000);
} // end animate
// Toast for empty Fields
$scope.showAlert = function(menuName, time) {
//Calling $mdToast.show to show toast.
$mdToast.show({
controller: 'toastController',
templateUrl: 'toast.html',
hideDelay: time,
position: 'top',
locals: {
displayOption: {
title: menuName
}
}
});
} // End showToast.
// check LogIn
var em, pw;
$scope.user = {};
$scope.updateEmail = function() {
em = $scope.user.email;
console.log(em);
return em;
};
$scope.updatePass = function() {
pw = $scope.user.pass;
console.log(pw);
return pw;
};
// Password Validation
$scope.validatePass = function(ppw) {
if (ppw.length < 8) {
$scope.errorMsg = "Password must be at least 8 characters long";
}
};
// start login
$scope.logInNow = function() {
var sdata = {
em: em,
pw: pw
};
if (pw == "" || pw == null) {
$scope.errorSignIn = "Fields cannot be blank";
}
// FIREBASE LOGIN
else {
firebase.auth().signInWithEmailAndPassword(sdata.em, sdata.pw)
.then(function(authData) {
console.log("Logged in as:", authData.uid);
$state.go('app.types');
}).catch(function(error) {
console.error("Authentication failed:", error);
$scope.errorSignIn = "Email or Password is invalid";
});
}
}
};
$scope.initialForm();
}
]);
フィードバックいただきありがとうございます。私はあなたの推薦を試みます。 新しい文書と古い文書の両方を調べましたが、たぶん私はばかだから接続できません。しかし、ドキュメントのいくつかは少し弱く、不明瞭に見えました。 –
また、あなたはそのコードをどこに置いたのですか? ctrlまたは.runで? –
さて、私はそれをインターネットアプリケーションではなく、Ionicアプリでやってみました。それを見てください:https://czatowanko-5bf39.firebaseapp.com – pr0gramist