Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取用户';创建帐户后,在firebase函数中显示名称_Java_Android_Firebase_Firebase Cloud Messaging - Fatal编程技术网

Java 获取用户';创建帐户后,在firebase函数中显示名称

Java 获取用户';创建帐户后,在firebase函数中显示名称,java,android,firebase,firebase-cloud-messaging,Java,Android,Firebase,Firebase Cloud Messaging,我有一个Android应用程序,用户可以用他们的电子邮件、密码和显示名注册帐户。我想在用户创建帐户后向其发送欢迎电子邮件。这就是我创建帐户并设置其显示名称的方式 // This happens in Android (RegisterActivity.java) where I create user's account FirebaseAuth auth = FirebaseAuth.getInstance(); auth.createUserWithEmailAndPassword(emai

我有一个Android应用程序,用户可以用他们的电子邮件、密码和显示名注册帐户。我想在用户创建帐户后向其发送欢迎电子邮件。这就是我创建帐户并设置其显示名称的方式

// This happens in Android (RegisterActivity.java) where I create user's account
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.createUserWithEmailAndPassword(email, password)
        .addOnSuccessListener(new OnSuccessListener<AuthResult>() {
            @Override
            public void onSuccess(AuthResult authResult) {
                FirebaseUser user = authResult.getUser();
                user.updateProfile(new UserProfileChangeRequest.Builder()
                        .setDisplayName(name).build());
            }
        });

我相信firebase函数会在帐户创建成功后立即触发,并且我在创建帐户后设置了用户的displayname,因此函数中的
displayname
null
。我能做些什么来解决这个问题?我不想向电子邮件中没有姓名的用户发送电子邮件。

tl;dr:displayName在设置之前被调用

onCreate
函数在前端完成
createUserWithEmailAndPassword
后,但在设置displayName之前运行


更新displayName后运行onCall函数,或者按照firebase github线程对此问题的建议,您可以向
createUserWithEmailAndPassword
添加配置文件参数,以便我们使用预填充的配置文件创建新帐户。

您在哪里调用
exports.sendWelcomeEmail=functions.auth.user().onCreate((用户)=>..?
你能在调用该类的地方发布该类吗?你是否尝试在OnSuccessListener中调用该类,问题可能是它们发生在不同的线程上,并且SendwelComeMail发生在createUserWithPassword完成之前。@Mina很抱歉造成混淆。第一个片段是我创建用户帐户的Java Android代码。第二个片段是部署到Firebase云函数的
index.js
中的JavaScript代码
// This happens in Firebase Cloud Functions (index.js)
exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
    // send welcome email here
    console.log(user.displayName) // displayName is null here
});