有没有办法可以获得用户在验证后输入的电话号码。我需要保存电话号码并将其变成一个cookie,这样我就可以使用电话号码获取谷歌地图标记标签。我在GitHub论坛上发布了同样的问题,另一位用户回复说我需要包含此代码。firebase.auth().currentUser.phoneNumber
但我不知道在哪里实现这一点,所以我包含了我的身份验证页面HTML和javascript代码。如果有人可以帮助我,我会非常感激。
/**
* @return {!Object} The FirebaseUI config.
*/
function getUiConfig() {
return {
'callbacks': {
// Called when the user has been successfully signed in.
'signInSuccess': function(user, credential, redirectUrl) {
handleSignedInUser(user);
// Do not redirect.
//'signInSuccessUrl': "http://localhost:8080/CurrentLocation.html",
return true;
}
},
// Opens IDP Providers sign-in flow in a popup.
'signInSuccessUrl': "http://localhost:8080/homepage_latest.html",
'signInFlow': 'popup',
'signInOptions': [
// The Provider you need for your app. We need the Phone Auth
//firebase.auth.TwitterAuthProvider.PROVIDER_ID,
{
provider: firebase.auth.PhoneAuthProvider.PROVIDER_ID,
recaptchaParameters: {
type: 'image', // another option is 'audio'
size: 'invisible', // other options are 'normal' or 'compact'
badge: 'bottomleft' // 'bottomright' or 'inline' applies to invisible.
}
}
],
// Terms of service url.
'tosUrl': 'https://www.google.com'
};
}
// Initialize the FirebaseUI Widget using Firebase.
var ui = new firebaseui.auth.AuthUI(firebase.auth());
/**
* Displays the UI for a signed in user.
* @param {!firebase.User} user
*/
var handleSignedInUser = function(user) {
document.getElementById('user-signed-in').style.display = 'block';
document.getElementById('user-signed-out').style.display = 'none';
document.getElementById('name').textContent = user.displayName;
document.getElementById('email').textContent = user.email;
document.getElementById('phone').textContent = user.phoneNumber;
if (user.photoURL){
document.getElementById('photo').src = user.photoURL;
document.getElementById('photo').style.display = 'block';
} else {
document.getElementById('photo').style.display = 'none';
}
};
/**
* Displays the UI for a signed out user.
*/
var handleSignedOutUser = function() {
document.getElementById('user-signed-in').style.display = 'none';
document.getElementById('user-signed-out').style.display = 'block';
ui.start('#firebaseui-container', getUiConfig());
};
// Listen to change in auth state so it displays the correct UI for when
// the user is signed in or not.
firebase.auth().onAuthStateChanged(function(user) {
document.getElementById('loading').style.display = 'none';
document.getElementById('loaded').style.display = 'block';
user ? handleSignedInUser(user) : handleSignedOutUser();
});
/**
* Deletes the user's account.
*/
var deleteAccount = function() {
firebase.auth().currentUser.delete().catch(function(error) {
if (error.code == 'auth/requires-recent-login') {
// The user's credential is too old. She needs to sign in again.
firebase.auth().signOut().then(function() {
// The timeout allows the message to be displayed after the UI has
// changed to the signed out state.
setTimeout(function() {
alert('Please sign in again to delete your account.');
}, 1);
});
}
});
};
/**
* Initializes the app.
*/
var initApp = function() {
document.getElementById('sign-out').addEventListener('click', function() {
firebase.auth().signOut();
});
document.getElementById('delete-account').addEventListener(
'click', function() {
deleteAccount();
});
};
window.addEventListener('load', initApp);

<script src="https://www.gstatic.com/firebasejs/4.11.0/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyCWZjRe2CK8Hu2VN35AgZOQ7lQZKcI-UWM",
authDomain: "carrier-35d7c.firebaseapp.com",
databaseURL: "https://carrier-35d7c.firebaseio.com",
projectId: "carrier-35d7c",
storageBucket: "carrier-35d7c.appspot.com",
messagingSenderId: "827792028763"
};
firebase.initializeApp(config);
</script>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://cdn.firebase.com/libs/firebaseui/2.3.0/firebaseui.js"></script>
<link type="text/css" rel="stylesheet" href="https://cdn.firebase.com/libs/firebaseui/2.3.0/firebaseui.css" />
<link href="auth.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="container">
<h3></h3>
<div id="loading"></div>
<div id="loaded" class="hidden">
<div id="main">
<div id="user-signed-in" class="hidden">
<div id="user-info">
<div id="photo-container">
<img id="photo">
</div>
<div id="name"></div>
<div id="email"></div>
<div id="phone"></div>
<script>
</script>
<div class="clearfix"></div>
</div>
<p>
<button id="sign-out">Sign Out</button>
<button id="delete-account">Delete account</button>
</p>
</div>
<div id="user-signed-out" class="hidden">
<h4>You are signed out.</h4>
<div id="firebaseui-spa">
<h3></h3>
<div id="firebaseui-container"></div>
</div>
</div>
</div>
</div>
</div>
<script src="auth.js"></script>
</body>
&#13;
答案 0 :(得分:0)
这很简单:
'signInSuccess': function(user, credential, redirectUrl) {
// You can also access this via firebase.auth().currentUser.phoneNumber
console.log(user.phoneNumber);
handleSignedInUser(user);
// Do not redirect.
//'signInSuccessUrl': "http://localhost:8080/CurrentLocation.html",
return true;
}