Tag: kotlin firebase

Firebase Admin SDK无法从jar文件内部连接到数据库

我正在开发一个带有Firebase的Android应用程序,并决定使用Firebase Admin SDK创建一个简单的管理应用程序。 使用IDE(IntelliJ IDEA)启动并通过Admin SDK连接到数据库可以正常工作,但启动导出的.jar文件时,Admin SDK无法连接到数据库。 要初始化到Firebase的连接,我使用以下(Kotlin)代码: //Initialize the Firebase Admin SDK. val serviceAccount = this.javaClass.classLoader.getResourceAsStream("fen/ftcConsole/control/flip-the-classroom-app-firebase-adminsdk.json") val options = FirebaseOptions.Builder() .setCredential(FirebaseCredentials.fromCertificate(serviceAccount)) .setDatabaseUrl("https://flip-the-classroom-app.firebaseio.com/") .setStorageBucket("flip-the-classroom-app.appspot.com") .build() FirebaseApp.initializeApp(options) //Get the connections to the database and the cloud storage. database = FirebaseDatabase.getInstance() storage = StorageClient.getInstance().bucket() 我添加了一些控制台输出,发现代码只是不会超过这一行:“database = FirebaseDatabase.getInstance()”。 它只是阻止线程,没有任何反应。 也没有例外抛出。 正如我所说,这只发生在导出的jar文件,当开始与IDE,一切工作正常,这使得测试非常困难。 使用IntelliJ和gradle创建.jar文件,打包.jar文件中的依赖关系,并将其保留在外部,从.jar文件或外部使用admin-key加载.json文件,问题总是发生。 为了用gradle创建.jar,build.gradle文件包含下面的jar-block: jar { manifest { attributes […]

如何在我的应用程序及其库中实例化一个Singleton?

我为我创建了一个Firebase云消息传递库,所以我可以在我的应用程序和我创建的所有其他库中使用它。 这是迄今为止工作。 然后我添加了一个FcmManager类,它管理所有Fcm相关的东西,比如刷新标记。 由于我可以在我的应用程序和其他库中使用这个FcmLibrary,我想使它成为一个Singleton,所以这个FcmManager只实例化一次。 这里的问题是在FcmManager中我有一个Context参数。 在活动中: val fcmManager = FcmManager(this) 我该如何解决这个问题?

Android Firebase身份验证:未找到com.google.android.gms.crash和com.google.firebase.auth的本地模块描述符类

对于我的硕士论文项目,我正在开发Android上的医疗诊断应用程序。 我在Android Studio 3.0 Beta 7中使用Kotlin。我已经使用Firebase实现了一个身份验证系统,并且每次在logcat中运行应用程序时,都会收到以下警告: DynamiteModule: Local module descriptor class for com.google.firebase.auth not found. DynamiteModule: Local module descriptor class for com.google.firebase.auth not found. 我正在使用电子邮件和密码登录方法。 身份验证工作得很好,所以我没有得到这个警告的来源。 我的gradle应用程序文件有: … dependencies { … implementation 'com.firebase:firebase-client-android:2.3.1' implementation 'com.google.firebase:firebase-auth:11.4.2' implementation 'com.google.firebase:firebase-database:11.4.2' implementation 'com.google.firebase:firebase-core:11.4.2' implementation 'com.google.firebase:firebase-crash:11.4.2' implementation 'com.google.android.gms:play-services-vision:11.4.2' … } apply plugin: 'com.google.gms.google-services' 当然,我确实已经在“清单”中加入了互联网许可证。 我尝试了不同的方法,我在这里看到,但没有任何工作: 我有12.55 GB的免费存储空间,所以不是关于存储空间 Google play服务安装在11.5.18版本中 我清除了所有的应用程序数据 […]

如何将Firebase中的文本文件读取到Android应用程序

我正在开发基于内容的Android应用程序。我使用Firebase上传所有文本文件(在rtf或doc文件中)。当我将一个文本文件上传到Firebase后,我创建了一个详细的活动,从firebase下载文件,但文本文件不读,它什么也没有显示。这里是我的Kotlin代码… class detailOne : AppCompatActivity() { private var mTextView : TextView? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.detailone) val myButton = findViewById(R.id.butOne) as Button mTextView = findViewById(R.id.myText) as TextView FirebaseApp.initializeApp(this) val storage = FirebaseStorage.getInstance() val storageRef = storage.getReferenceFromUrl("gs://yehwot-eta.appspot.com/story.rtf") try { val localFile = File.createTempFile("text", "rtf") storageRef.getFile(localFile).addOnSuccessListener { }.addOnFailureListener { print("Connection is Lost!Please Try […]

用Kotlin存储的Firebase UI会给出错误

在为firebase-ui-storage添加依赖项时出现错误。 我为Kotlin创建了应用程序 build.gradle – 之前: compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.android.support:design:25.3.1' compile 'com.google.firebase:firebase-storage:10.2.6' compile 'com.github.bumptech.glide:glide:4.0.0-RC0' 添加后: compile 'com.firebaseui:firebase-ui-storage:1.2.0' 我得到如下错误: 所有com.android.support库必须使用完全相同的版本规范(混合版本可能会导致运行时崩溃)。 发现版本25.3.1,25.1.1。 示例包括com.android.support:animated-vector-drawable:25.3.1和com.android.support:palette-v7:25.1.1 有一些库的组合,或工具和库,是不兼容的,或可能导致错误。 一种不兼容的情况是使用不是最新版本的Android支持库进行编译(或者特别是比targetSdkVersion更低的版本)。 我不知道为什么它发生,即使我没有使用矢量绘制或调色板 任何帮助? 提前致谢。

Kotlin Firebase反序列化

我试图从Kylin反序列化Firebase到POJO的数据,这是我的POJO类: class Message { var number: String ?= null var message: String? = null var timestamp: Long = 0L var isHandled: Boolean ?= false var type:String ?=null } 这是我从Firebase检索数据的代码 val query = Fire.REF.child("sms").orderByChild("type").equalTo("outbox-unsent") query.addChildEventListener(object : ChildEventListener { override fun onChildAdded(dataSnapshot: DataSnapshot, key: String) { val outbox = dataSnapshot.getValue(Message::class.java) Log.d("BS", "Background Service $outbox") } //…… }); […]