我正在使用离子2 rc0和角度2,我刚刚添加了angularfire2来使用firebse auth。
我已完成所有配置和测试(我只是看到我的用户登录了firebase控制台),但我希望在登录后重定向到其他页面。
我的登录代码:
registerUserWithGoogle() {
console.log('Google');
this.af.auth.login();
}
我的firebase配置是:
export const myFirebaseAuthConfig = {
provider: AuthProviders.Google,
method: AuthMethods.Redirect
};
所以有一种方法可以在方法login()之后重定向吗?
答案 0 :(得分:4)
AngularFire2在authState
中有一个名为AngularFireAuth
的属性,您可以订阅该属性以获取身份验证状态更改
这是处理用户身份验证的推荐方法,因为您将订阅身份验证状态的更改,其他方法可能无法按预期工作,例如当用户刷新页面时,用户对象可能不存在。
import { AngularFireAuth } from 'angularfire2/auth';
@Component({
templateUrl: 'app.html'
})
export class AppComponent {
constructor(public afAuth: AngularFireAuth) {}
ngOnInit() {
this.afAuth.authState.subscribe(user => {
if (user) {
// go to home page
} else {
// go to login page
}
});
}
}
注意:您不需要在每个页面上订阅。仅订阅AppComponent
或您的应用特定根组件。
答案 1 :(得分:0)
我发现这在我的情况下会更好。
<?php
$url = $_GET["url"];
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, $url);
curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
$returnVal = curl_exec($curlSession);
curl_close($curlSession);
//converting the retreived "json lookalike text" in to a json:
$decodedText = html_entity_decode($returnVal);
$myArray = json_decode($decodedText, true);
//this DOES work and shows the json as an array, as described above.
echo "<pre>";
print_r($myArray);
echo "</pre>";
//BUT non of the following lines work:
$echo = sizeof($myArray->results);
echo "<br />".$myArray->results[1]->imre;
echo "<br />".sizeof($myArray);
echo "<br />".sizeof($myArray->results);
echo "<br />".sizeof($myArray->results[1]);
echo "<br />".sizeof($myArray[1][1]);
echo "<br />".sizeof($myArray[0]);
echo "<br />".sizeof($myArray[0]->results);
echo "<br />".sizeof($myArray->imre);
echo "<br />".sizeof($myArray[0]->results);
echo "<br />".$myArray->results['1']->imre;
echo "<br />".$myArray[0]->results[1]->imre;
echo "<br />".$myArray->results[1]->imre;
echo "<br />".sizeof($myArray->results[1]);
?>