Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firebase数据库指向错误的数据库URL_Java_Android_Firebase Realtime Database - Fatal编程技术网

Java Firebase数据库指向错误的数据库URL

Java Firebase数据库指向错误的数据库URL,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我正在开发一款Android应用程序,并尝试使用Firebase数据库。我试图将数据写入数据库,但没有显示任何内容(通过Firebase控制台进行检查)。我在构建中有Firebase库: implementation platform('com.google.firebase:firebase-bom:26.2.0') implementation 'com.google.firebase:firebase-database' 根据Firebease控制台,我的Firebase数据库URL为:

我正在开发一款Android应用程序,并尝试使用Firebase数据库。我试图将数据写入数据库,但没有显示任何内容(通过Firebase控制台进行检查)。我在构建中有Firebase库:

implementation platform('com.google.firebase:firebase-bom:26.2.0')
implementation 'com.google.firebase:firebase-database'
根据Firebease控制台,我的Firebase数据库URL为:

    https://xxxxxxxx-xxxxxxx-default-rtdb.europe-west1.firebasedatabase.app/
然而,当我从代码中获得对它的引用时:

    private DatabaseReference mDatabase;

    mDatabase = FirebaseDatabase.getInstance().getReference();
    Log.i(TAG," Reference is: "+mDatabase.toString());
logcat显示以下响应:

    I/Tag:  Reference is: https://xxxxxxxx-xxxxxxx-default-rtdb.firebaseio.com
我在项目中还有google-services.json文件,该文件指向Firebase控制台中显示的相同数据库URL。在我看来,Firebase在我无法查看/配置的地方错误配置了我的数据库


我有什么遗漏吗?

我最近遇到了一个类似的问题,
我删除了我的应用程序的build文件夹,然后再次重建了项目,使其正常工作了

我刚刚用与您完全相同的BoM版本在我自己的一个新项目上进行了测试,只需
google services.json
文件和以下代码即可:

final DatabaseReference ref =  FirebaseDatabase.getInstance().getReference();
Log.i("firebase", ref.toString());
ref.child("from Android").push().setValue(ServerValue.TIMESTAMP);
这运行起来没有问题。
Log.i
写入:

I/firebase:

这确实是我数据库的正确URL,应该是一个与您的非常相似的URL


我不知道为什么这对您不起作用,但是您可以通过将正确的URL显式地传递到
getInstance()
中来解决这个问题。因此:

mDatabase = FirebaseDatabase.getInstance("https://xxxxxxxx-xxxxxxx-default-rtdb.europe-west1.firebasedatabase.app/").getReference();

我也有类似的问题,在Android Studio中帮助我的是

Build->Clean Project
然后

Build->Rebuild Project

在此之前,请确保您的google.json文件中的firebase url是正确的,并且您拥有最新的google.json文件。

您是在firebase控制台中这样做的吗?我从Firebase控制台删除了该项目,该应用程序仍然在logcat:I/Tag:Reference中显示错误的数据库URL:在Android项目中,删除应用程序>构建目录人你是一个救生员!非常感谢你!!我一直在吹毛求疵,即使每个配置都被正确地传递,为什么数据库url是不同的谢谢你,弗兰克,是的,它以这种方式获取正确的引用:I/Tag:reference是:我不可能猜到,但似乎这是解决方法。顺便说一句,是什么导致SDK无法从配置中读取正确的URL?我还不完全确定。1) 这是项目中唯一的数据库实例吗?2) 如果是,在控制台中创建数据库后是否下载了配置文件?(我猜两者都是“是”,但我想确定)是的,是的。我检查了google-services.json文件,所有内容都是正确的,但它仍然拉错了引用,然后我从project中删除了.json文件并播放了该应用程序,但它仍然显示了相同的错误引用,因此我认为可能是Android Studio缓存了错误的引用,所以我执行了“无效并重新启动”操作,但也没有任何帮助。感谢您的确认。我刚刚在我自己的一个项目上测试了这个,但不幸的是无法重现这个问题。我更新了我的答案,以反映这一点,并改变了解决方案的措辞。我为同一个应用程序创建了新的包,以便能够写入数据库,并且工作正常,然后我将Firebase项目切换为使用另一个应用程序写入公共数据库,现在我的配置已经失控。现在我甚至无法进行身份验证,现在我收到错误“来自这个Android客户端应用程序的请求被阻止”,我知道这看起来像是一个不同的错误,但我相信这与我的Google Cloud API/身份验证配置中的上述问题有某种联系。