【发布时间】:2018-12-13 20:57:09
【问题描述】:
我有一个 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 功能。以下是我的代码:
// 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
});
我相信一旦创建帐户成功就会触发firebase函数,并且我在创建帐户后设置了用户的显示名称,因此displayName在函数中是null。我能做些什么来解决这个问题?我不想向电子邮件中没有姓名的用户发送电子邮件。
【问题讨论】:
-
你在哪里打电话
exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => .. ?你能发布你调用这个的类吗,你是否尝试在 OnSuccessListener 中调用它,问题可能是它们发生在不同的线程上并且 sendWelcomeEmail 发生在 createUserWithPassword 之前已经结束了。 -
@Mina 很抱歉造成混乱。第一个 sn-p 是我创建用户帐户的 Java Android 代码。第二个 sn-p 是
index.js中的 JavaScript 代码,部署到 Firebase Cloud Functions
标签: java android firebase firebase-cloud-messaging