Javascript Firebase身份验证和Google登录
我正在使用javascript登录firebase auth,我希望使用相同的过程访问google drive,以避免登录google两次 在查看文档时,我可以看到上面写着“这给了你一个谷歌访问令牌,你可以用它访问谷歌API。” 目前,我可以分别登录到这两个站点,方法是在之后调用:Javascript Firebase身份验证和Google登录,javascript,firebase-authentication,google-signin,Javascript,Firebase Authentication,Google Signin,我正在使用javascript登录firebase auth,我希望使用相同的过程访问google drive,以避免登录google两次 在查看文档时,我可以看到上面写着“这给了你一个谷歌访问令牌,你可以用它访问谷歌API。” 目前,我可以分别登录到这两个站点,方法是在之后调用: gapi.auth2.getAuthInstance().signIn(); 但这会为用户生成两个登录。目前的目标是让用户登录firebase auth,然后在没有双重登录的情况下从google列出用户的文件 fu
gapi.auth2.getAuthInstance().signIn();
但这会为用户生成两个登录。目前的目标是让用户登录firebase auth,然后在没有双重登录的情况下从google列出用户的文件
function appendPre(message) {
var pre = document.getElementById('form-results-ul');
var textContent = document.createTextNode(message + '\n');
pre.appendChild(textContent);
}
function listFiles() {
gapi.client.drive.files.list({
'pageSize': 10,
'fields': "nextPageToken, files(id, name)"
}).then(function (response) {
appendPre('Files:');
var files = response.result.files;
if (files && files.length > 0) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
appendPre(file.name + ' (' + file.id + ')');
}
} else {
appendPre('No files found.');
}
});
}
函数appendPre(消息){
var pre=document.getElementById('form-results-ul');
var textContent=document.createTextNode(message+'\n');
pre.appendChild(文本内容);
}
函数listFiles(){
gapi.client.drive.files.list({
“页面大小”:10,
“字段”:“下一个GetOken,文件(id,名称)”
}).然后(功能(响应){
appendPre('Files:');
var files=response.result.files;
如果(files&&files.length>0){
对于(var i=0;i
您只需使用gapi.auth2.getAuthInstance().signIn()
登录,然后使用该库中的Google ID令牌登录Firebase Auth
这在中有记录
哦!非常感谢。
function appendPre(message) {
var pre = document.getElementById('form-results-ul');
var textContent = document.createTextNode(message + '\n');
pre.appendChild(textContent);
}
function listFiles() {
gapi.client.drive.files.list({
'pageSize': 10,
'fields': "nextPageToken, files(id, name)"
}).then(function (response) {
appendPre('Files:');
var files = response.result.files;
if (files && files.length > 0) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
appendPre(file.name + ' (' + file.id + ')');
}
} else {
appendPre('No files found.');
}
});
}
// Build Firebase credential with the Google ID token.
const credential = firebase.auth.GoogleAuthProvider.credential(
googleUser.getAuthResponse().id_token);
// Sign in with credential from the Google user silently.
firebase.auth().signInWithCredential(credential)
.then((result) => {
// User signed in.
})
.catch((error) => {
// Error occurred.
});