You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Unity的Oculus 2 VR应用Firebase数据库集成技术问询

Unity Oculus 2 VR应用集成Firebase实时数据库实现用户注册功能

正在开发基于Unity的Oculus 2 VR应用,需将应用与Firebase实时数据库集成,实现用户名及登录信息的存储功能。目前已完成Firebase初始化、用户注册相关C#代码编写,以及数据库读写权限配置,相关代码如下:

Firebase初始化脚本(FirebaseSetup.cs)

using UnityEngine;
using Firebase;
using Firebase.Database;
using Firebase.Extensions;

public class FirebaseSetup : MonoBehaviour
{
    private DatabaseReference dbReference;

    void Start()
    {
        // 初始化Firebase数据库
        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
        {
            if (task.Result == DependencyStatus.Available)
            {
                // 获取Firebase应用默认实例
                FirebaseApp app = FirebaseApp.DefaultInstance;

                // 设置自定义Firebase实时数据库URL
                string firebaseDatabaseURL = "https://silid-ai-939a6-default-rtdb.firebaseio.com/";
                FirebaseDatabase.DefaultInstance.App.Options.DatabaseUrl = new System.Uri(firebaseDatabaseURL);

                // 获取数据库根节点引用
                dbReference = FirebaseDatabase.DefaultInstance.RootReference;

                Debug.Log("Firebase初始化成功!");
            }
            else
            {
                Debug.LogError("Firebase初始化失败。");
                // 处理初始化失败逻辑
            }
        });
    }

    public void WriteDataToDatabase(string key, string value)
    {
        // 向数据库写入数据
        dbReference.Child(key).SetValueAsync(value).ContinueWith(task =>
        {
            if (task.IsCompleted && !task.IsFaulted && !task.IsCanceled)
            {
                Debug.Log("数据成功写入数据库!");
            }
            else
            {
                Debug.LogError("数据库写入失败: " + task.Exception);
            }
        });
    }
}

用户注册管理脚本(DatabaseManager.cs)

using UnityEngine;
using UnityEngine.SceneManagement; // 引入SceneManager
using UnityEngine.UI;
using Firebase;
using Firebase.Database;
using TMPro;

public class DatabaseManager : MonoBehaviour
{
    public TMP_InputField firstnameField;
    public TMP_InputField lastnameField;
    public TMP_InputField usernameInput;
    public TMP_InputField passwordInput;

    private string userID;
    private DatabaseReference dbReference;

    void Start()
    {
        userID = SystemInfo.deviceUniqueIdentifier;
        dbReference = FirebaseDatabase.DefaultInstance.RootReference;
    }

    public void CreateUser()
    {
        User newUser = new User(firstnameField.text, lastnameField.text, usernameInput.text, passwordInput.text);
        string json = JsonUtility.ToJson(newUser);

        dbReference.Child("users").Child(userID).SetRawJsonValueAsync(json);
    }
}

用户数据模型类(User.cs)

public class User
{
    public string firstnameInput;
    public string lastnameInput;
    public string usernameInput;
    public string passwordInput;

    public User(string firstnameInput, string lastnameInput, string usernameInput, string passwordInput)
    {
        this.passwordInput = firstnameInput;
        this.passwordInput = lastnameInput;
        this.usernameInput = usernameInput;
        this.passwordInput = passwordInput;
    }
}

注:User类构造函数存在赋值错误,所有属性均被错误赋值为passwordInput,需修正为对应属性的正确赋值:

public User(string firstnameInput, string lastnameInput, string usernameInput, string passwordInput)
{
    this.firstnameInput = firstnameInput;
    this.lastnameInput = lastnameInput;
    this.usernameInput = usernameInput;
    this.passwordInput = passwordInput;
}

内容的提问来源于stack exchange,提问作者John Alfred Pagarigan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:53:17