首页 > 解决方案 > java.io.FileNotFoundException: ServiceAccountKey.json (没有这样的文件或目录)

问题描述

我只是尝试在我的项目中导入 firebase amdin sdk。

我在 android studio 中收到以下消息。

E/AndroidRuntime: 致命异常: main

进程:com.lupin.ganzp.ticketfireauthmanager,PID:7883

java.lang.RuntimeException:无法启动活动 ComponentInfo{com.lupin.ganzp.ticketfireauthmanager/com.lupin.ganzp.ticketfireauthmanager.MainActivity}:java.io.FileNotFoundException:/ServiceAccountKey.json(没有这样的文件或目录)

这可能是简单的代码

const val relativePath = "/ServiceAccountKey.json"

class MainActivity : AppCompatActivity() 
{
    override fun onCreate(savedInstanceState: Bundle?) 
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        SDK_Init()
        Access_DB("newDB")
    }

    fun SDK_Init()
    {
        var serviceAccount = FileInputStream(relativePath)
        val options = FirebaseOptions.Builder()
            .setCredentials(GoogleCredentials.fromStream(serviceAccount))
            .setDatabaseUrl("https://<HiDE>.firebaseio.com/")
            .build()

        FirebaseApp.initializeApp(options)
    }       
}

我已经做了几乎我能做的事情......

我试过这样

  1. 路径 1 = "c:\~to~ \.json"
  2. 路径 2 = "ServiceAccountKey.json"
  3. 路径 3 = "./ServiceAccountKey.json"
  4. 路径 4 = "com/lupin/ganzp/ticketfireauthmanager/ServiceAccountKey.json"

但是,这段代码找不到我的 json 文件,尽管它确实存在,正如你看到的这张图片。

在此处输入图像描述

下面的代码显示创建的文件不存在。

val name = File(".").canonicalPath
    println("Test $name")
    val file = File(name, "/" + "ServiceAccountKey.json")
    println("file path : " + file)
    println(file.exists())

    println(file.exists())  //false
    println(file.canRead())  //false

谁知道这个问题的解决方案?

标签: androidfirebasekotlinfilenotfoundexceptionfirebase-admin

解决方案


这是我在 Java 项目中初始化 Admin SDK 的方式:

FileInputStream serviceAccount = new FileInputStream("project-credentials.json");

FirebaseOptions options = new FirebaseOptions.Builder()
        .setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
        .setDatabaseUrl("https://mydatabase.firebaseio.com/")
        .build();

我将 JSON 文件保存在与我设置为应用程序工作目录相同的目录中。


推荐阅读