Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Android Can';t在Firebase中存储经度和纬度的值_Android_Google Maps - Fatal编程技术网

Android Can';t在Firebase中存储经度和纬度的值

Android Can';t在Firebase中存储经度和纬度的值,android,google-maps,Android,Google Maps,我有我自己的地图,登录后地图会显示出来,然后得到我的坐标(纬度,长)。我将这段代码放在一个覆盖方法onLocationChange(Location-Location)中,这样每当用户走到或移动到任何地方时,lat和long都会被更新。问题是我无法在Firebase中存储这些值 try { DatabaseReference myRef = FirebaseDatabase.getInstance().getReference(); Logi

我有我自己的地图,登录后地图会显示出来,然后得到我的坐标(纬度,长)。我将这段代码放在一个覆盖方法onLocationChange(Location-Location)中,这样每当用户走到或移动到任何地方时,lat和long都会被更新。问题是我无法在Firebase中存储这些值

try {


            DatabaseReference myRef = FirebaseDatabase.getInstance().getReference();

            LoginModel model = new LoginModel();

            model.setLatitude(location.getLatitude());
            model.setLongitude(location.getLongitude());
            myRef.setValue(model, new DatabaseReference.CompletionListener() {
                @Override
                public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
                    if (databaseError != null) {
                        Toast.makeText(Location.this, "Data could not be saved " + databaseError.getMessage(), Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(Location.this, "Data saved successfully.", Toast.LENGTH_SHORT).show();
                    }
                }
            });
            Toast.makeText(this, "Latitude :" + location.getLatitude() + " Longitude :" + location.getLongitude() , Toast.LENGTH_SHORT).show();

        }catch (Exception e){
            Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
        }
数据库(Firebase)


权限被拒绝


啊,你的帖子里没有这些信息:)检查你的数据库规则。转到firebase控制台,选项卡数据库并单击“规则”。现在检查规则是否足以满足您的dev帐户。出于测试目的,将规则设置为“read=true,write=true”,然后再次测试。现在有工作吗?(之后重新设置规则)

您知道如何调用嵌套节点吗?

尝试使用方法
rootReference.updateChildren(Map)用于一次更新多个节点和子节点。地图包含
,其中
是一个像
“User/kfbefafitacomk5hf9/latitude”
这样的集中键,
对象
是您想要输入的值(这里是一个用于纬度的浮点)

这种方法的优点是更新节点中的特定键值对,而不更新整个节点。i、 e您可以更新特定用户的邮件值,而无需覆盖经度和纬度

也可以通过调用直接更新值

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("your_root_here_or_empty");

ref.child("childNodeName").child("subChildNodeName").setValue(yourObject, yourListener);
我还强烈建议阅读:


干杯

首先,我建议不要在firebase节点中存储任何重要数据,除非您完全熟悉firebase数据库规则。(邮件、手机、密码……)。接下来,日志和祝酒的输出是什么?你确定lat和lon与零不同吗?然后,尝试使用updatemap方法,否则您将始终重新创建完整的键值输入集。@JacksOnF1re我的祝酒词“数据无法保存”的输出权限被拒绝以及纬度和logitudeAh的值,这些信息在您的帖子中丢失:)检查您的数据库规则。转到firebase控制台,选项卡数据库并单击“规则”。现在检查规则是否足以满足您的dev帐户。出于测试目的,将规则设置为“read=true,write=true”,然后再次测试。现在有工作吗?(随后重置规则)@JacksOnF1re谢谢,先生,现在可以了。您知道如何调用嵌套节点吗?就像我数据库里的一样?因为我想在那里存储经度和纬度的值。我试着改变规则先生,我的规则是这样的:{.read:true,.write:true,Name:{.read:true,.write:true,Name:{.read:“auth!=null”,“.write:“auth!=null”},email:{.read”:“auth!=null”、“.write”:“auth!=null”},“pass”:{.read”:“auth!=null”、“.write”:“auth!=null”},“mobile”:{.read”:“auth!=null”,“.write”:“auth!=null”},}
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("your_root_here_or_empty");

ref.child("childNodeName").child("subChildNodeName").setValue(yourObject, yourListener);