【问题标题】:How to localize the password reset email sent with firebase in unity?如何统一本地化使用firebase发送的密码重置电子邮件?
【发布时间】:2020-09-08 15:16:42
【问题描述】:

Firebase 很棒,很容易统一设置电子邮件身份验证,甚至发送密码重置电子邮件。 但是,我不知道如何设置电子邮件语言。

在Java for android中代码是:

FirebaseAuth auth = FirebaseAuth.getInstance();
auth.setLanguageCode("fr");
// or auth.useAppLanguage();
auth.sendPasswordResetEmail("mymail@me.com")

但我在统一的 c# SDK 中找不到等价物。

FirebaseAuth auth = FirebaseAuth.DefaultInstance;
auth.setLanguageCode("fr"); // this methode doesn't exist
auth.SendPasswordResetEmailAsync("mymail@me.com");

【问题讨论】:

  • 不知何故,作为用户/开发人员,我希望它会自动使用用户为他/她自己配置的语言进行本地化,对吧?

标签: c# firebase unity3d firebase-authentication


【解决方案1】:

很遗憾,此 API 调用尚未在 C++ 或 Unity SDK 中实现。

我已经确定有一个 feature request filed 来更新 SDK,但在那之前看看这是否可以作为一种解决方法(我现在没有可以验证的项目):

using Firebase.Auth;
using UnityEngine;

public class SetLanguageCode : MonoBehaviour
{
    [SerializeField] private string _languageCode;

    void Start()
    {
        // make sure auth is initialized via Unity/C++ before invoking JNI calls
        var auth = FirebaseAuth.DefaultInstance;
        var authClass = new AndroidJavaClass("com.google.firebase.auth.FirebaseAuth");
        var authInstance = authClass.CallStatic<AndroidJavaObject>("DefaultInstance");
        authInstance.Call("setLanguageCode", _languageCode);
        Debug.Log($"Set language code to {_languageCode}");
    }
}

我验证了 auth 单例是用 var auth = 行初始化的。然后我尝试使用 Unity 的 JNI 互操作功能在 Java 端检索单例并直接调用缺少的方法。

【讨论】:

  • 我在统一编辑器中尝试了你的解决方案(选择了Android平台),当我调试它时,authClass设置正确,但authInstance为null,因此语言没有改变.你知道为什么吗?
  • 哦不,这有点令人惊讶。 auth 是非空的吗?
  • 是的,auth 不为空,甚至以前也使用过。我尝试构建以防万一,但它也不起作用
猜你喜欢
  • 2015-08-13
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 2019-12-01
  • 2015-11-26
  • 2018-11-02
  • 2018-04-27
相关资源
最近更新 更多