当前位置: 首页 > 知识库问答 >
问题:

将多个android activity的数据保存到一个Firebase数据库

丁立果
2023-03-14

下面是我的两个活动的代码。通过这样编码,数据在FireBase中就这样存储了。这是存储数据的快照:

但是我想像这样在firebase中存储数据,我想像这样存储在注册号字段下:

我想将来自多个活动的数据存储在同一个子元素下,就像我在第二张屏幕截图中显示的那样。

AccountyActivity.java

 private void init() {

    mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
    mSettingsClient = LocationServices.getSettingsClient(this);

    mLocationCallback = new LocationCallback() {
        @Override
        public void onLocationResult(LocationResult locationResult) {
            super.onLocationResult(locationResult);
            // location is received
            mCurrentLocation = locationResult.getLastLocation();
            lot = mCurrentLocation.getLatitude();
            lgt = mCurrentLocation.getLongitude();
            lg = Double.toString(lgt);
            lt = Double.toString(lot);
            mAuth = FirebaseAuth.getInstance();
            FirebaseUser user = mAuth.getCurrentUser();

            UID = user.getUid();
            final DatabaseReference myRootRef = FirebaseDatabase.getInstance().getReferenceFromUrl("https://smartattendance-c896a.firebaseio.com/Users");

            DatabaseReference user1 = myRootRef.child(UID);
            user1.child("Longitude").setValue(lg);
            user1.child("Latitude").setValue(lt);

SignupActivity.java

private FirebaseAuth mAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    mAuth = FirebaseAuth.getInstance();

    final DatabaseReference myRootRef = FirebaseDatabase.getInstance().getReferenceFromUrl("https://smartattendance-c896a.firebaseio.com/Users");
    f1 = (EditText) findViewById(R.id.newUserName);
    f2 = (EditText) findViewById(R.id.newPassword);
    signUp = (Button) findViewById(R.id.signupbtn);
    signInLink = (TextView) findViewById(R.id.signinlink);
    tnc = (CheckBox) findViewById(R.id.tnc);
    f3 = (EditText) findViewById(R.id.cfmpassword);
    f4 = (EditText) findViewById(R.id.enroll);
    signUp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startSignup();
            String Enrollment = f4.getText().toString();

            String email = f1.getText().toString();
            String pass = f2.getText().toString();
            DatabaseReference user = myRootRef.child(Enrollment);
            user.child("Email").setValue(email);
            user.child("Password").setValue(pass);
        }
    });

共有1个答案

滕学义
2023-03-14

将值从一个activity传递到另一个:

在SignupActivity中:

Intent i=new Intent(SignUpActivity.this,AccountyActivity.class);
                    i.putExtra("id",Enrollment);

然后在AccountyActivity中执行以下操作:

String id = getIntent().getStringExtra("id");
DatabaseReference myRootRef = FirebaseDatabase.getInstance().getReference("Users");
        DatabaseReference ref = myRootRef.child(id);

        Map<String, Object> childUpdates = new HashMap<>();
         childUpdates.put("Longitude", lg);
         childUpdates.put("Latitude",lt);

        ref.updateChildren(childUpdates);

您需要使用updatechildren以避免覆盖其他子节点。

https://firebase.google.com/docs/database/android/read-and-write#update_specific_fields

 类似资料:
  • 问题内容: 所有,我必须创建一个具有基本架构的数据库。该数据库将很大(超过100GB),并将用作数据仓库。现在,该数据库的创建当前正在通过C#代码“一次命中”执行。从许多不同的来源中提取数据。由于数据量巨大,这种创建引起了一些问题。已经决定,与其一口气创建一个数据库,不如一次创建一个数据库。到 创建几个包含核心数据表的较小数据库。 将较小的数据库合并为一个较大的数据库。 建立架构/添加相关约束。

  • 我有一个小应用程序,用户可以根据球员最近在各种运动中的表现,对他们进行升票或降票。 当upvote按钮当前被点击时,投票者的UID(通过Google登录)应该被推入被投票的相应玩家的数据库中。像这样: 下面是执行Firebase工作的代码。我相信我错了其中一句台词。

  • Im使用firebase,由于某些原因,我的代码没有推送数据,并且Im没有在firebase URL中看到数据。我的密码是这样的 我得到警报“保存”,但我无法在firebase URL中找到数据。 此外,为Firebase中的每个url提供的API键有什么用途。 更新:这种情况发生在IE10中。在其他浏览器中,它工作得很好

  • 问题内容: 如何从一个数据库复制到另一个数据库。 数据库名称visco 我想将所有表从visco数据库复制到新数据库名称作为neptune 我创建了一个没有任何表的数据库,然后尝试从database1.bak文件还原数据库,然后显示错误为 需要查询帮助 问题答案: 使用SQL Server Management Studio: 选项1 ->右键单击要复制的数据库 ->选择“任务”>“生成脚本” -

  • 问题内容: 检索数据有效,但是我无法将检索到的数据保存到ArrayList中。在“ onDataChanged()”方法之后,ArrayList“配置文件”似乎具有2个值,但在return语句中它具有0个值。 问题答案: 您现在无法返回尚未加载的内容。换句话说,您不能简单地在方法之外返回列表,因为它总是由于该方法的异步行为而引起的。这意味着,当您尝试返回该方法之外的结果时,数据尚未完成从数据库的加

  • 我编写了一个Firebase云函数,可以通过REST API访问该函数。代码如下所示。 我需要做的是,当用户通过“Web服务URL”从前端提交一些值时。 1)我需要将这些数据保存在Firebase实时数据库中。 2.)我参考了网上的几个教程,不明白在下面的代码中做了什么。