【问题标题】:How to timestamp/decode Realtime firebase database to get a chronological display如何时间戳/解码实时 Firebase 数据库以按时间顺序显示
【发布时间】:2021-06-11 02:40:02
【问题描述】:

我试图让这个实时数据库按时间顺序显示我的“文本”。它不断地将我的“文本”从上到下按字母顺序添加。我确定我需要添加时间戳来修复它,但我不是 100% 确定。

这是我的主要活动:

>   package com.example.osada;
>     
>     import android.os.Bundle;
>     import android.view.View;
>     import android.widget.EditText;
>     import android.widget.TextView;
>     
>     import androidx.appcompat.app.AppCompatActivity;
>     
>     import com.google.firebase.database.DataSnapshot;
>     import com.google.firebase.database.DatabaseError;
>     import com.google.firebase.database.DatabaseReference;
>     import com.google.firebase.database.FirebaseDatabase;
>     import com.google.firebase.database.ValueEventListener;
>     
>     import java.text.SimpleDateFormat;
>     import java.util.Date;
>     
>     public class MainActivity extends AppCompatActivity {
>     
>         private DatabaseReference myDatabase;
>         SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
>         String currenttime = sdf.format(new Date());
>     
>         @Override
>         protected void onCreate(Bundle savedInstanceState) {
>             super.onCreate(savedInstanceState);
>             setContentView(R.layout.activity_main);
>     
>             myDatabase = FirebaseDatabase.getInstance() .getReference("message1");
>     
>             TextView textmessage = findViewById(R.id.text);
>     
>             myDatabase.addValueEventListener(new ValueEventListener() {
>                 @Override
>                 public void onDataChange(DataSnapshot snapshot) {
>     
>     
>                     textmessage.setText(snapshot.getValue().toString());
>     
>     
>     
>                 }
>     
>                 @Override
>                 public void onCancelled(DatabaseError error) {
>                 textmessage.setText("Error, please try again later.");
>                 }
>             });
>         }
>         public void sendMessage (View view){
>     
>             EditText myEditText = findViewById(R.id.editTextTextPersonName);
>             myDatabase.push().child("Jon").setValue(myEditText.getText().toString());
>             myEditText.setText("");
>             System.out.println();
>     
>     
>     
>     
>         }
>     }

Firebase 实时数据库显示如下: Database

这是我的安卓模拟器显示的 Emulator

【问题讨论】:

    标签: java android firebase firebase-realtime-database timestamp


    【解决方案1】:

    我确定我需要添加时间戳来修复它,但我不是 100% 确定

    确实,您需要添加一个可以保存时间戳的新属性。这可以使用我在以下帖子中的回答来完成:

    一旦有了新字段,就可以使用 Query 的 orderByChild(String path) 方法:

    创建一个查询,其中子节点按指定路径的值排序。

    默认情况下,顺序是升序。如果您需要降序,请查看我在以下帖子中的回答:

    How to arrange firebase database data in ascending or descending order?

    【讨论】:

    • 嘿joneyboy21!我可以帮助您了解其他信息吗?如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记(✔️)来接受它。应将颜色更改为绿色。我真的很感激。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2021-11-23
    • 2021-03-16
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    相关资源
    最近更新 更多