Firebase身份验证+;Unity3d中的Firebase存储

Firebase身份验证+;Unity3d中的Firebase存储,unity3d,firebase,firebase-authentication,firebase-storage,Unity3d,Firebase,Firebase Authentication,Firebase Storage,我不明白如何在存储器中传递身份验证值。。。 下面是尝试写入文件时返回的错误,以及代码本身的下面。 有人遇到过这样的问题吗 权限规则使用标准 service firebase.storage { match /b/project.appspot.com/o { match /{allPaths=**} { allow read, write: if request.auth != null; } } } System.AggregateException:类型

我不明白如何在存储器中传递身份验证值。。。 下面是尝试写入文件时返回的错误,以及代码本身的下面。 有人遇到过这样的问题吗

权限规则使用标准

service firebase.storage {
  match /b/project.appspot.com/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}
System.AggregateException:类型为的异常 已引发“System.AggregateException”。 -----------------Firebase.Storage.StorageException:用户没有访问此对象的权限。-->System.IO.IOException:异常 服务器已终止上载会话--内部异常结束 堆栈跟踪---

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用火基;
使用Firebase。储存;
使用Firebase.Auth;
公共类存储:单行为{
公共纹理2D纹理;
公共认证;
FirebaseApp;
任命方案;
火基储存;
存储参考存储参考,参考文件;
//用于初始化
无效开始(){
InitFirebase();
}
public void InitFirebase(){
打印(“InitFirebase启动”);
DependencyStatus DependencyStatus=FirebaseApp.CheckDependencies();
if(dependencyStatus!=dependencyStatus.可用){
FirebaseApp.FixDependenciesAsync().ContinueWith(任务=>{
dependencyStatus=FirebaseApp.CheckDependencies();
if(dependencyStatus==dependencyStatus.Available){
签名();
}否则{
打印(“无法解析所有依赖项:+dependencyStatus”);
}
});
}否则{
签名();
}
}
公共无效签名(){
打印(“签名开始”);
字符串_testEmail=”test@gmail.com";
字符串_testPassword=“qwerty”;
选项=新选项();
options.ApiKey=“API_KEY”;
options.StorageBucket=“存储桶”;
options.AppId=“AppId”;
app=FirebaseApp.Create(选项,“名称”);
FirebaseAuth.GetAuth(应用程序)。使用Email和PasswordAsync(\u TestMail,\u testPassword)登录。继续使用((System.Threading.Tasks.Task authTask)=>{
if(authTask.IsCanceled){
打印(“签名已取消”);
}else if(authTask.IsFaulted){
打印(“signin faulted”+authTask.Exception.ToString());
}else if(authTask.IsCompleted){
打印(“登录完成,用户id为”+authTask.Result.UserId);
存储=FirebaseStorage.GetInstance(应用程序);
storage_ref=storage.GetReferenceFromUrl(“gs://testproject-3b976.appspot.com/data/”;
上传(“图像/”+texture.name+“.png”);
}否则{
打印(“签名未知错误”);
}
});
}

使用UnitySDK的Firebase身份验证现在在UnityEditor上不起作用。(也是独立的)

你只在UnityEditor上试用过吗? 它可以在iOS或Android上运行

不过,我也在寻找在Unity3D单机游戏上使用Firebase身份验证的方法。


如果你已经在iOS或Android上试用过,然后问这个问题,我就什么都没有了。

我在Android上试用过,一切都正常。谢谢你的帮助!单机版的问题我也很感兴趣,将等待答案:)你能用firebase登录google吗?我一直在获取Firebase.Auth.GoogleAuthProvider.GetCredential方法的(字符串id_标记,字符串访问_标记)。请告知我哪里错了?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Storage;
using Firebase.Auth;

public class Storage : MonoBehaviour {
    public Texture2D texture;

    public Auth autentification;

    FirebaseApp app;
    AppOptions options;

    FirebaseStorage storage;
    StorageReference storage_ref, ref_file;

    // Use this for initialization
    void Start () {
        InitFirebase ();
    }

    public void InitFirebase(){
        print("InitFirebase start");

        DependencyStatus dependencyStatus = FirebaseApp.CheckDependencies();

        if (dependencyStatus != DependencyStatus.Available) {
            FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
                dependencyStatus = FirebaseApp.CheckDependencies();
                if (dependencyStatus == DependencyStatus.Available) {
                    Signin();
                } else {
                    print("Could not resolve all dependencies: " + dependencyStatus);
                }
            });
        } else {
            Signin();
        }
    }

    public void Signin(){
        print("Signin start");
        string _testEmail = "test@gmail.com";
        string _testPassword = "qwerty";

        options = new AppOptions ();
        options.ApiKey = "API_KEY";
        options.StorageBucket = "STORAGE_BUCKET";
        options.AppId = "APPID";

        app = FirebaseApp.Create (options, "name");

        FirebaseAuth.GetAuth(app).SignInWithEmailAndPasswordAsync (_testEmail, _testPassword).ContinueWith ((System.Threading.Tasks.Task<FirebaseUser> authTask) => {
            if (authTask.IsCanceled) {
                print("signin canceled");
            } else if (authTask.IsFaulted) {
                print("signin faulted " + authTask.Exception.ToString());
            } else if (authTask.IsCompleted) {
                print("signin complete , user id is " + authTask.Result.UserId);    
                storage = FirebaseStorage.GetInstance(app);    
                storage_ref = storage.GetReferenceFromUrl("gs://testproject-3b976.appspot.com/data/");
                Upload ("images/" + texture.name + ".png");
            } else {
                print("signin unknown error");
            }
        });
    }