在 Firebase 上注册后,使用 Facebook 使用网页



我有一个小型网站,用户可以在其中使用电子邮件和密码登录Firebase。

我使用以下代码:

<script>
function SignUpWithMailPSW(email,pswRdmSeq) {
....
firebase.auth().createUserWithEmailAndPassword(email, pswRdmSeq).then(function(user) {
....
}
... useful things irrelevant to the question.
}
</script>

现在,用户还可以使用Facebook登录。

首先,我找到了这个文档。为了进行实验,我根据我读到的内容做了一些事情,只是一个小的测试页面。这是代码:

<HTML>
<HEAD>
<META HTTP-EQUIV="content-type" CONTENT="text/html; CHARSET=UTF-8">
<script src="https://www.gstatic.com/firebasejs/6.3.5/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/6.3.5/firebase-auth.js"></script>
</HEAD>
<BODY>
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "ABCDEF-APIKEY-12345",
authDomain: "myapp.firebaseapp.com",
databaseURL: "https://myapp.firebaseio.com",
projectId: "myapp",
storageBucket: "myapp.appspot.com",
messagingSenderId: "123456789",
appId: "1:987654321:web:xy2122k98xyxy8988"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
<b>TEST ONLY PAGE !!!</b>
<script>
var provider = new firebase.auth.FacebookAuthProvider();
function SignUpWithFB() {
// var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Facebook Access Token. You can use it to access the Facebook API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
}
SignUpWithFB();
</script>
<b>TEST ONLY PAGE !!!</b>
</BODY>
</HTML>

在这一点上,它开始工作。

但是我想知道如何使用我们在回调函数(或承诺?

firebase.auth().signInWithPopup(provider).then(function(result) {});

我没有发现这个结果变量的任何重要内容(类型、字段、使用、..等等。搜索网络。

一些提示将非常有用。

你在 promise 的then部分得到的结果变量是一个对象(类型(,其中包含有关用户的所有信息。并且本身包含许多属性,使用这些属性您可以非常轻松地获取所有这些数据。

列举几个重要的

显示名称
  • :提供用户的显示名称
  • 电子邮件:为您提供用户的电子邮件 ID
  • 电子邮件
  • 已验证:告诉您电子邮件ID是否已验证
  • 元数据:本身是一个包含 LastSignInTime 和 creationTime 等信息的对象
  • photoURL:用户图片的URL,当前图片。
  • uid:(非常有用(与每个用户相关联的唯一ID,这将允许您提前进行许多身份验证。

注意:要列出并检查所有这些属性,请尝试在控制台中输出  console.log(result);

signInWithPopup方法声明为:

signInWithPopup(provider: AuthProvider): Promise<UserCredential>

所以它返回Promise<UserCredential>.这意味着在then回调中,您将获得一个UserCredential对象,该对象声明为:

Optional additionalUserInfo?: AdditionalUserInfo | null
credential: AuthCredential | null
Optional operationType?: string | null
user: User | null

所以它有usercredential属性,也可能additionalUserInfooperationType

有关其中每个方面的更多信息,请继续按照参考文档中的链接进行操作。

最新更新