我有一个使用firebase进行Facebook身份验证的代码。在成功验证时,我需要重定向到新页面。我尝试检查内部,如果令牌不是null然后window.redirect函数,但它无法正常工作。任何人都可以帮助我。谢谢。
facebookLogin(){
// Sign in using a redirect.
firebase.auth().getRedirectResult().then(function(result) {
console.log(result);
if (result.credential) {
// This gives you a Google Access Token.
var token = result.credential.accessToken;
}
var user = result.user;
})
// Start a sign in process for an unauthenticated user.
var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithRedirect(provider);
}
答案 0 :(得分:1)
您的身份验证回调中可能是navController.setRoot(NewPage)
或navController.push(NewPage)
。
有关详细信息,请参阅the NavController
documentation。
答案 1 :(得分:1)
您应该使用箭头函数(()=> {...}
)而不是标准函数(function(){...}
),因此this
关键字仍然引用组件代码而不是功能本身。这样,您仍然可以使用该函数内部组件中定义的属性和方法。
facebookLogin(){
// Sign in using a redirect.
firebase.auth().getRedirectResult().then((result) => { // <--- Here!
console.log(result);
if (result.credential) {
// This gives you a Google Access Token.
var token = result.credential.accessToken;
}
var user = result.user;
// Now you can use the methods and properties from your component here!
this.navCtrl.setRoot(NextPage);
});
// Start a sign in process for an unauthenticated user.
var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithRedirect(provider);
}
答案 2 :(得分:1)
要在成功验证后重定向到新页面 -
创建要在页面加载时加载的函数 -
Rootobject example = new Rootobject();
//Add values to the variable example.
var objectSerialized = JsonConvert.SerializeObject(example);
注意 - 具有function initApp() {
firebase.auth().getRedirectResult().then(function (result) {
if (result.credential) {
window.location='newpage.html';//Replace with your newpage URL
}
}
}
window.onload = function () {
initApp();
};
功能的脚本应位于调用下面第2点中给出的facebook登录方法的页面上。
2.(推荐)将提供者调用脚本与另一个函数分开 -
window.onload