gpt4 book ai didi

java - 使用 google firebase auth 用户个人资料图像 url 为空

转载 作者:行者123 更新时间:2023-12-02 09:42:53 26 4
gpt4 key购买 nike

我正在使用 google firebase auth 方法来验证用户身份,我正在使用 firebase 方法获取用户个人资料信息并将其保存在服务器上。当我尝试在服务器上保存用户图像 uri 时,它显示空值。

下面是我的代码:

FirebaseAuth fAuth = FirebaseAuth.getInstance();
FirebaseUser user = fAuth.getCurrentUser();

if(user != null){

saveData();
}

private void saveData(){

final String uid = user.getUid();
final String email = user.getEmail();
final Uri profileImage = user.getPhotoUrl();
final String name = user.getDisplayName();

RequestQueue requestQueue = Volley.newRequestQueue(BookForm.this);

StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>(){

@Override
public void onResponse(String response) {

if(response.equals("Successfully inserted")){

Toast.makeText(getApplicationContext(),"Successful",Toast.LENGTH_SHORT.show();
}
}

}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {

NetworkResponse status = error.networkResponse;
Toast.makeText(getApplicationContext(),"Error:"+status,Toast.LENGTH_SHORT).show();
}
}){

@Override
protected Map<String, String> getParams() throws AuthFailureError {

HashMap<String,String> map = new HashMap<>();

map.put("userId",uid);
map.put("email",email);
map.put("name",name);
map.put("profileImage", String.valueOf(profileImage));

return map;
}
};

requestQueue.add(stringRequest);
}

这就是我向服务器发送数据的方式。

router.post('/addData', (req,res) => {

var data = {

User_id: req.body.userId,
Email:req.body.email,
Profile_image:req.body.profileImage,
Name: req.body.name
};

MongoClient.connect(dburl, {useNewUrlParser:true} ,(err,client) => {

if(err){

console.log("Error".red, +err);
}
else{

var collect = client.db('my_db').collection('Example');

collect.insertOne(data, (err,resp) =>{

if(err){

console.log("Error".red, +err);
}
else{

res.send("Successfully inserted");
}

client.close();
});

}

});

});

有人请告诉我为什么图像 uri 在保存到服务器后显示为空。任何帮助将不胜感激。

谢谢

最佳答案

不要求身份验证提供程序必须为您提供用户的图像 URL。如果提供者没有(可能是因为用户从未提供过图像),那么您将得到 null。您的代码应该能够处理这种情况。

请注意 getPhotoUrl() 的 API 文档具体说:

This field will be automatically populated on account creation if the AuthCredential used on signInWithCredential(AuthCredential) contained such information.

关于java - 使用 google firebase auth 用户个人资料图像 url 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56922251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com