android - 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 = "c:\~to~ \.json"
- 路径 2 = "ServiceAccountKey.json"
- 路径 3 = "./ServiceAccountKey.json"
- 路径 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
谁知道这个问题的解决方案?
解决方案
这是我在 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 文件保存在与我设置为应用程序工作目录相同的目录中。
推荐阅读
- mysql - MySQL 列值的总和
- python - TypeError:并非所有参数都在字符串格式化 2.0 期间转换
- python-3.x - 意外行为 :: WriteToBigQuery PTransform 的“batch_size”参数(Python 3.7,Apache Beam)
- api - IIS Windows 身份验证 - 无法拒绝特定用户
- python - Ctrl-C 从 python 到 bash
- mysql - 选择最新的行,然后随机化这些行,然后显示随机化的前 2 行
- node.js - 如何从http获取url参数
- react-native - 使用 react-native 开发增加/减少滑动按钮?
- ios - 如何让tableview控件适合整个屏幕
- c# - 如何使用 gui 按钮在方法中启用禁用代码并更改按钮文本?