Warm tip: This article is reproduced from serverfault.com, please click

java-是否可以从Firebase上的Google身份验证获取姓氏和名字?

(java - Is it possible to get first and last name from Google Authentication on Firebase?)

发布于 2020-11-28 01:06:55

在我的程序中,我在Firebase上使用Google身份验证。但是,当我尝试仅检索名字时,我只看到可以使用.getDisplayName()获取显示名称,该名称由整个名字和姓氏组成。我想知道是否有任何方法只能获得名字。

        int index = mAuth.getCurrentUser().getDisplayName().indexOf(" ");
        String first = mAuth.getCurrentUser().getDisplayName().substring(0, index);
        String last = mAuth.getCurrentUser().getDisplayName().substring(index + 1);
        Map<String, Object> user = new HashMap<>();

        user.put("first", first);
        user.put("last", last);
        user.put("uid", mAuth.getCurrentUser().getUid());
        user.put("email", mAuth.getCurrentUser().getEmail());
        user.put("phone", mAuth.getCurrentUser().getPhoneNumber());

我尝试使用Index of并获取名字和姓氏的子字符串,但这似乎不起作用,因为我认为名字和姓氏中可以有多个空格。

如果有人可以帮助我,那就太好了,

谢谢

Questioner
ryan chen
Viewed
11
Ilyasse Salama 2020-11-28 09:40:31

正如道格所说,显示名称是一种自由格式,你不知道用户的名字或姓氏在哪里。但是,你可以使用以下方法,但我不保证该方法适用于所有名称。

String fullname = "Ilyasse Salama";
String[] parts = fullname.split("\\s+");
String firstname = parts[0];
String lastname = parts[1];